perl 一些知识点
时间:2009-04-29 来源:zhmysh
use strict 比屏幕长的程序要加入脚本中
字符串连接操作符 .
字符串复制: 小写字母x
数字和字符串之间的自动切换
操作符的优先级别:
自动 单目 匹配=~ !~ 算术 比较(字符eq ne lt ge 数值== !=) 逻辑 三目 赋值 逗号
布尔值:
1.数值0 为假,其余是真
2.字符串 空字符串为假,其他字符串为真
3. 不是字符串或者数值,要转化
4. 0 是字符串或者数值,都为假
$line=<STDIN> 输入结束是enter键
@line=<STDIN> 输入结束结束是ctrl+D
chomp($line | @line=<STDIN>) 删除最后一个换行符。如果有多个换行符只会删除最后一下。
列表:($var1,$var2,$var3) = ( 1,2,3) ... 空列表()
数组:@line 数组的元素: $line[0] = "yahoo" 字符要加单引号或则和双引号
$#line @line>=数值
建立简单的单词列表:qw( fred barney betty wilma )
操作符pop push | shift unshift 第一个参数是数组
操作符 reverse 列表或者数组
函数: sub max { if(@_ != 2 )} @_ $_[0] $_[1]
调用: &max(10,15)
还回值:
1.脚本最后任何东东
2. return
3. return后面没加还回值,还回-1
正则表达式RE
元字符: 点号. 匹配换行符\n 以外的所有单个字符。
屏蔽: \
量词 : 星号 * 前一个项目0或者多次
加号 + 前一个项目1或者多次,注意:匹配只用空格隔开的字符串(空格不是元字符),在两个字符串之间的时候。
圆括号 : 用来归组,如:/fred+/ 匹配freddddd
/(fred)+/ 匹配fredfredfred $1
竖线:择一匹配 |
方括号:包含一连串可能的字符 [] (-同类连续;^在字符串开头加上插入记号,用来排除字符串 [^def]
如果方括号前,表示排首
字符串简写 \d 代表任意数字的字符集[0-9]
\w 单词word [a-zA-Z0-9_]
\s 处理空白 \t \n \f \r 空格五种空白字符
反义简写的排除
以双斜线作为界定符号,可以省略开头的m
选项修饰符: /i 不区分大小写 /s 匹配任意字符,包括换行符 /x 可加空白 ;以上选项可以组合
瞄点: 插入记号^ 美元记号$ /^\s*$/
单词瞄点\b: 单词边界,所匹配一个单词的头尾两端
绑定操作符=~ : 拿右边的模式来匹配左边的字符串,而非匹配$_
自动匹配变量 $` $& $'
perl 模块
查找模块 http://search.cpan.org
查找模块,系统是否安装 :perldoc modules_name 如 perldoc CGI (重要)
用eval捕获错误,还回值$@:空是正确,其他错误遗言l; 发生错误,块会结束,程序不会结束
eval {
open FILE
if($@) {
print "an error\n";
};
当调用别人的程序,很有用;
eval 是一个表达式,所以结尾要加分号
grep从列表中选出项目,结果是列表
my @odd_nmubers = grep {$_ % 2} 1...1000;
my @match = grep { /\bfred\b/i } <FILE>;
my @match = grep /\bfred\b/i,<FILE>;