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//          正则表达式       是