之前整理的,现在回头看看,等于天书。

1、变量,数组
类型 字符 例子 用途
标量 $ $cents 一个独立的数值(数字或字串)
数组 @ @large 一列数值,用编号做键值
散列 % %interest 一组数值,用字串做键值
子过程 & &show 一段可以调用的perl代码
类型团 * *struck 所有叫struck的东西

2、操作符
双目算数操作符

例子 名字 结果
$a + $b 加法 将$a和$b相加
$a – $b 减法 将$a和$b相减
$a / $b 除法 将$a和$b相除
$a * $b 乘法 $a和$b的积
$a % %b 模 $a被$b除的余数
$a ** $b 幂 取$a的$b次幂

3、单目算数操作符
例子 名字 结果
++$a,$a++ 自增 向$a加一
–$a,$a– 自减 向$a减一

4、逻辑操作符
例子 名字 结果
$a && $b 与 如果$a为假,则为$a,否则为$b
$a || $b 或 如果$a为真,则为$a,否则$b
!$a 非 如果$a为假,则为真;
$a and $b 与 如果$a为假,则为$a,否则$b
$a or $b 或 如果$a为真,则为$a,否则$b
not $a 非 如果$a为假,则为真
$a xor $b 异或 如果$a或$b为真,但不能同时为真

5、比较操作符
比较 数字 字串 返回值
等于 == eq 如果$a等于$b返回真
不等于 != ne 如果$a不等于$b返回真
小于 < lt 如果$a小于$b返回真 大于 > gt 如果$a大于$b返回真
小于或等于 < = le 如果$a不大于$b返回真 比较 <=> cmp 相等时为0,如果$a大为1,如果$b大为-1

6、文件测试操作符
例子 名字 结果
-e $a 存在 如果在$a中命名的文件存在则为真
-r $a 可读 如果在$a中命名的文件可读则为真
-w $a 可写 如果在$a中命名的文件可写则为真
-d $a 目录 如果在$a中命名的文件是目录则为真
-f $a 文件 如果在$a中命名的文件是普通文件则为真
-T $a 文本文件 如果在$a中命名的文件是文本则为真

(1)除了””和”0″,所有字符串为真
(2)除了0,所有数字为真
(3)所有引用为真
(4)所有未定义的值为假

perl有四种循环语句类型:while,until,for和foreach。
最小匹配 /.*?:/ 匹配第一个:就停止
\b匹配单词边界 /\blove\b/ 表示只匹配love 不匹配lover IloveU

7、变量
$days 表示标量值$days
$days[28] 数组@days的第二十九个元素
$days{‘Feb’} 散列%days的“Feb”值

${days} 和$days一样,不过在字母数字前面不易混淆
$Dog::days 在Dog包里面的不同的$days变量
$#days 数组@days的最后一个索引
$days->[28] $days一个引用指向的数组的第二十九个元素
$days[0][2] 多维数组
$days{200}{‘Feb’} 多维散列
$days{2000,”Feb} 多维散列枚举

@days 包含($days[0],$days[1]…$days[n])的数组
@days[3,4,5] 包含($days[3],$days[4],$days[5])数组片段的数组
@days[3..5] 包含($days[3],$days[4],$days[5])数组片段的数组
@days{‘Jan’,’Feb’} 包含($days{‘Jan’},$days{‘Feb’})片段的散列

每个散列都用%命名
%days (Jan=>31,Feb=>$leap?29:28,…)

8、引起的含义
常用 通用 含义 替换
” q// 文本字串 否
“” qq// 文本字串 是
“ qx// 执行命令 是
() qw// 单词数组 否
// m// 模式匹配 否
s/// s/// 模式替换 是
y/// y/// 字符替换 是
“” qr// 正则表达式 是

One thought on “perl读书笔记”

发表评论

电子邮件地址不会被公开。 必填项已用*标注