perl的基础知识总结-----难记但有用特殊符号
? ? ? ? 从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,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? [ftnr ] #h? [t ] 5.010 #v? [fnr] 5.010 #[dD] 匹配任何字符 #. 匹配出换行符以外任何字符 #/^s*$/匹配空白行 #b 单词边界锚位 11、$&??? 用来表示匹配的值 $`??? 匹配前的变量, $’??? 匹配后的变量 if("hello world!hao are you"=~/sw+!/){ ??? say "it mached $&!";#$&用来表示匹配的值 ?????? say "before was ($`),after was($')"; } 12、@_ ?????输入参数变量 sub max{ ??? my($num1)=@_;#第一个参数 ?????? my $num2=@_;#参数的个数 ?????? print "The num1 is $num1,nThe num2is $num2n"; ?????? my ($num3,$num4)=@_;#前两个参数 ?????? my $num5,$num6=@_;#my只对num5起作用 ?????? print "The num3 is $num3,nThe num4is $num4n"; ?????? print "The num5 is $num5,nThe num6is $num6n"; } 13、$^I? ??备份修给生成新文件 @ARGV="d:text.txt"; #$^I=".bak"; while(<>){ #此处输入替换的正则表达式? ?????? print; ?????? } 14、$@? ??存储错误信息 eval{ $a=$b=5; ???$b=$a/0; }; print ?"The error is $@" if $@;#$@存储错误信息!! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |