列表和数组:
列表是包含在括号里的一序列的值,可以为任何数值,也可为空。
数组存取:
@array = (1, 2, 3);
@result = @original;
@list2 = (1, @list1, 5);
($var1, $var2, $var3) = @array;
模式匹配:
特殊字符:
+ [] [^]
* ? ^ $ |
模式匹配选项:
g i m o s x
文件操作:
打开文件:
open(filevar, filename); //filevar 为文件句柄
open (myfile, "file1") || die ("Could not open file");
关闭文件:
close(myfile);
读文件:
$line = <MYFILE>;
@array = <MYFILE>;
写文件:
open(OUTFILE, ">outfile");
判断文件状态:
-b c d e g k l o p r s t u v x z A B C M O R S T W X
打开管道:
open (MESSAGE, "| mail dave");
正则表达式:
匹配:m/<regexp>/
替换:s/<regexp>/<substituteText>/
转换:tr/<charClass>/<substituteClass>/
正则表达式能够处理双引号字符串所能处理的任意和全部的字符。
Perl允许使用{}()[]来书写正则表达式。
$scalar = quotemeta(' ({'); # $variable =~ m" /(/{" ; 可减少/
正则表达式在求值的过程中产生两种情况:结果状态和反向引用。
每次对正则表达式求值时会得到:
.指示正则表达式匹配字符串的次数(结果状态)。
.如果希望保存部分匹配,则有—系列称为反向引用的变量。
$pattern = ' simple always simple';
$result = ($pattern =~ m"simple"); # result = 1
$text = " this matches ' THIS' not 'THAT' ";
$text =~ m" ('TH..' )";
print " $1/n"; # $1=THIS
通配符
./d — 匹配数字(字符组合[0-9])。
./D — 匹配非数(字符组合[^0-9])。
./w — 匹配单词字符(字符组合[a-zA-Z0-9_])(这里下划线算作一个单词字符)。
./W — 匹配非单词字符(字符组合[^a-zA-Z0-9_])。
./s — 匹配空格字符(字符组合[/t/n])(制表符、换行符、空格)。
./S — 匹配非空格字符(字符组合[/t/n])。
.- 匹配任意字符(在某些情况下)换行符除外(字符组合[^/n])、当输入m"(.*)"S时匹配任意字符。
.$- 尽管它实际上并不是一个通配符(它不匹配任何具体字符).但它是广泛使用的特殊字符;如果将其放在正则表达式的尾部则它匹配“行尾”。零宽度断言。
.^- 尽管实际上不是一个通配符,但如果它位于正则表达式的开头则它是匹配“行首”的特殊字符。零宽度断言。
./b,/B- 与$和^相同;不匹配字符,但匹配单词边界(/b)或匹配无单周边(/B)。零宽度断言。
正宽度断言
/D 非数字
/d 数字
/w 单词
/W 非单词
/s 空格
/S 非空格
' .' 换行符以外的任意字符。