从11月13日-11月15日花了三天时间读完了《Perl语言入门(第五版)》中文版,不得不钦佩Larry Wall的敏捷才气,不同于python,java,c,erlang,不知从哪里想出来那么多奇怪的符号来表示变量,但不过还算好用,但初期总是很难记,于是我觉得总结一下,最好不过,便于以后查阅。闲话少说,进入正题。
1、$ 以$号开头,标量定义,如:$num =1;
2、@ 以@开头,数组定义,如:@array = (1,2,3);数组元素调用 $array[index],其中index表示数组下标,如上例,$array[0]的值是1
3、% 以%开头,散列定义;
4、$# 在列表中 @array=(1,2,3); print $#array."\n"; #输出最后下标
$num=@array;#返回列表元素个数
5、.. @array=(1..5); print @array;#范围操作符输出12345
6、qw print qw(one,two,three);#单词列表输出('one','two','three')
7、$_ 老地方变量
foreach(1..10){
print "数一数 $_ \n"; #$_老地方变量
}
$_="特殊变量";
print ;
8、@ARGV 保存命令行参数
9、$! 错误信息变量
if(!openLOG,">>d:\\text.txt "){
die "cannot create logfile:$!";
}#$!可读的系统出错信息
printLOG "ok!";
10、常用正则表达式
#\d [0-9]
#\w [A-Za-z0-9_]
#\s [\f\t\n\r ]
#\h [\t ] 5.010
#\v [\f\n\r] 5.010
#[\d\D] 匹配任何字符
#. 匹配出换行符以外任何字符
#/^\s*$/匹配空白行
#\b 单词边界锚位
11、$& 用来表示匹配的值
$` 匹配前的变量,
$’ 匹配后的变量
if("hello world!hao are you"=~/\s\w+!/){
say "it mached $&!";#$&用来表示匹配的值
say "before was ($`),after was($')";
}
12、@_ 输入参数变量
sub max{
my($num1)=@_;#第一个参数
my $num2=@_;#参数的个数
print "The num1 is $num1,\nThe num2is $num2\n";
my ($num3,$num4)=@_;#前两个参数
my $num5,$num6=@_;#my只对num5起作用
print "The num3 is $num3,\nThe num4is $num4\n";
print "The num5 is $num5,\nThe num6is $num6\n";
}
13、$^I 备份修给生成新文件
@ARGV="d:\\text.txt";
#$^I=".bak";
while(<>){
#此处输入替换的正则表达式
print;
}
14、$@ 存储错误信息
eval{
$a=$b=5;
$b=$a/0;
};
print "The error is $@" if $@;#$@存储错误信息!!