寒假【perl语言学习脚本】9.1 9.2 9.3 9.4 9.5

该博客围绕Perl脚本编程展开,介绍了变量赋值、字符串合并、正则匹配等操作,还涉及文件读取、替换、备份等功能。如使用绑定操作符处理文件名,利用循环和正则表达式对文件内容进行替换,同时说明了命令行参数数组@ARGV的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

#!/usr/bin/perl -w

Copyright © 2019 by Yours Truly

Copyright © 2019 by Yours Truly

my $what = ‘fred’;
= " b a r n e y f r e d f r e d f r e d b a r n e y " ; / ( _="barneyfredfredfredbarney"; /( ="barneyfredfredfredbarney";/(what){2}/;
print “$&\n”;
在这里插入图片描述

#!/usr/bin/perl -w

Copyright © 2019 by Yours Truly

my $what = ‘fred|barney’;
= " f r e d f r e d b a r n e y q e q " ; / ( _="fredfredbarneyqeq"; /( ="fredfredbarneyqeq";/(what){3}/;
print “$&\n”;
在这里插入图片描述

#!/usr/bin/perl -w
my $what = ‘fred|barney’;
= " b a r n e y f r e d f r e d q s s s " ; / ( _="barneyfredfredqsss"; /( ="barneyfredfredqsss";/(what){3}/;
print “$&\n”;
在这里插入图片描述
#!/usr/bin/perl -w
my $whatt = ‘fred|barney’;
= " b a r n e y b a r n e y b a r n e y q s s s " ; / ( _="barneybarneybarneyqsss"; /( ="barneybarneybarneyqsss";/(whatt){3}/;
print “$&\n”;
在这里插入图片描述
#!/usr/bin/perl -w

Copyright © 2019 by Yours Truly

$filename = $ARGV[0];#读取
KaTeX parse error: Expected 'EOF', got '\/' at position 16: filename =~ s/(\̲/̲\w+)?/.out/;#绑定操作符 也可以s#.(\S)*#.out#
print “KaTeX parse error: Expected 'EOF', got '\n' at position 9: filename\̲n̲"; open ONE, ">filename”; #打开文件
while (<>) {
s/fred/Larry/gi;
print ONE $_;#如果把这个打开的文件ONE去掉,test.out里是空的,都输出在了屏幕上
}
close ONE;

#当perl脚本运行时,从命令行上传递给它的参数存储在内建数组@ARGV中,
#@ARGV是PERL默认用来接收参数的数组可以有多个参数, A R G V [ 0 ] 是 表 示 接 收 到 的 第 一 个 参 数 , ARGV[0]是表示接收到的第一个参数, ARGV[0]ARGV[1]表示第二个

\S 匹配非空白字符

$#作为一个变量表示打印数字时默认的数字输出格式,后面加上ARGV

#$#ARGV为命令行参数(不包括命令本身)的个数减一,即数组@ARGV最后一个元素的索引。
#用处也就是在程序开始时判断命令行参数个数,或者直接操作最后一个命令行参数。
在这里插入图片描述

#!/usr/bin/perl -w

Copyright © 2019 by Yours Truly

$filename = $ARGV[0];#读取
KaTeX parse error: Expected 'EOF', got '#' at position 14: filename =~ s#̲\.(\S)*#\.2out#…filename\n";
open ONE, “>$filename”; #打开文件
while (<>) {
s/fred/ /gi;
s/wilma/Fred/gi;
s/ /Wilma/gi;
print ONE $_;#如果把这个打开的文件ONE去掉,test.out里是空的,都输出在了屏幕上
}

在这里插入图片描述
#!/usr/bin/perl -w
$^I=".bak";#制作备份
while (<>) {
if (/^#!/) { #是#!开头的那行吗?
$_.="## Copyright © 2019 by Yours Truly\n";
}
print;
}

a.=b 就相当于 把a 和b字符串的内容和并,存入a

=就是简单的赋值

在这里插入图片描述

#!/usr/bin/perl -w
my %hash;
foreach (@ARGV) {
KaTeX parse error: Expected '}', got 'EOF' at end of input: hash{}=1;
}
#建立哈希,它的键是文件名称
while (<>) {
if (/\A## Copyright/) {
delete KaTeX parse error: Expected '}', got 'EOF' at end of input: hash{ARGV};
}
}
#移除已经包含版权声明行的文件
@ARGV= sort keys %hash;
$^I = “.bak”; #准备备份
while (<>) {
if (/\A#!/) { #是#!开头的那行吗?
$
.="## Copyright © 2019 by Yours Truly\n";
}
print;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值