学会用 perl -c 检查语法, perl -e 直接执行语句, perldoc 查看文档 , CPAN 查找 module ...
# 注释; =pod ... =cut 多行注释
特殊变量:
$$ Perl解释器的进程ID
@ARGV 保存命令行参数
@_ 在子程序内,这个数组变量包含传递给子程序的参数
$_ 默认输入
$/ 当前输入记录分隔符,默认情况是新行
$! 根据上下文内容返回错误号或者错误串
$@ Perl解释器从eval语句返回的错误消息
$? 返回上一个外部命令的状态
1)url 判断是否合法: /^(http:\/\/|https:\/\/)?((?:[A-Za-z0-9]+-[A-Za-z0-9]+|[A-Za-z0-9]+)\.)+([A-Za-z0-9]+)[\/\?\:]?.*$/
如果想不用\ 去转义 /, . , 等特殊字符,可以 /\Q$var\E/
在用 =~ 判断字符串包含时,需要注意是否包含空格等字符,特别是从文件中读出的时候,还要注意文件中的空白行
$context
=~ s/^\s*\n//mg;
Perl Code
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
my $file =
"blacklist.txt";
open(FILEIP, $file); while($var=<FILEIP>) { chomp $var; # 去除换行 if($var=~/^\s*(\S+)\s*$/) { $var=$1 # 去除左右空格 } print "-$var-\n"; #加些边界特殊字符打印,才能看出是否包含空格等字符 if($site_name =~ /$var/) { print "match it...\n" |