第1章 开始学习Perl
- 以#开始的语句表示注释。Perl语句以分号表示结束。
- Perl语言中也有转义字符,这点与C语言类似。
- $表示该符号后所跟的字符串是一个标量变量,即该变量只能保存一个数值或者字符串。 Perl语言中有两种变量,标量变量和数组变量。
- 在Unix中,所有程序都拥有三个打开的文件:STDIN(标准输入) STDOUT(标准输出) STDERR(标准错误)。Perl当然可以使用这三个。
- 使用chomp命令可以去掉多余的数据,主要是针对回车和换行。每个系统都配置了该命令,用于去掉注释的行末尾符号。
- Perl语言用于字符串比较的操作符。eq(等于) ge(大于等于) gt(大于) le(小于等于) lt(小于) ne( 不等于) cmp(字符串比较)。
- 在Unix中,可以把Perl脚本转换成一个可执行的程序。
第2章 Perl基础知识
- 控制Perl脚本--while命令, 和C语言的一样。
- 控制Perl脚本--until命令,实现与while正好相反的控制,只要条件为假,程序块不断被执行,直到条件为真结束。
- 控制Perl脚本--if命令,和C语言的一样。
- 控制Perl脚本--unless命令,与if语句相反,当条件不为真是执行。语句格式与if的一样。
- 控制Perl脚本--for循环,和C语言的一样。
- 控制Perl脚本--foreach语句,使得对列表或数组中的每一个元素进行循环。
- Perl语言的所有数学运算都以双精度的浮点数进行。如果想使用整数操作,则需要在程序块中增加这样的语句:use integer;
- 单引号所引起的为字符串本身,Perl对单引号中的内容提供了较少的解释。
- 双引号中的内容,Perl对其进行较多的解释,可以有转义字符,用变量的值替代变量。
- 如果数据本身已经有引号,可以使用q操作符生成字符串,产生一个单引号的字符串。$var=q('Single-quoted string');
- qq可以数据本身含有双引号的字符串,用法与q相似。
- 字符串函数——length:返回字符串中的字符数目。
- 字符串函数——chr:返回一个给定ASCII码数值对应的字符。
- 字符串函数——uc:把一个小写字符串转换成大写。
- 字符串函数——index:返回一个子串在字符串出中第一次出现的位置。
- 字符串函数——rindex:返回一个子串在字符串中第一次出现的位置,从后往前查找。
- 字符串函数——substr:从一个字符串中返回一个子串,它通常同index,rindex一起使用。$new_str=substr($string,$offset,$length);
- 字符串操作符——$s1.$s2:将$s2连接在$s1的末尾并返回。
- 字符串操作符——$s1 × value:将$s1重复value次并返回。
- 字符串操作符——$s1.=$s2:将$s2添加到$s1的末尾。
- Perl变量主要分为三类:标量,数组和散列。分别用$,@和%来区分。
- Perl认为@array和$array是两个完全不同且没有任何关系的值。$array[value]指的是@array的一个元素,而不是$array。
- 可以使用$#array语法确定一个数组中元素的个数。$#array实际上指的是最后一个元素,在确定数组元素时,需要将其加1。
- 数组操作函数——$number=scalar(@array);获得array数组的长度。
- 数组操作函数——splice,允许拼接数组,即允许将数组中的现有元素替换成新元素。splice(@array,$offset,$length,$replace1,$replace2,……)。返回消除的元素。
- 数组操作函数——reverse,颠倒数组中元素的顺序。
- 数组操作函数——sort,对数组进行排序。
- 散列(又叫关联数组),允许通过关键字来访问元素。散列保存了一组关键字/值。用%标记散列变量。
- 有关散列的操作——keys,返回散列中的所有关键字的列表,可以通过这个表提取所有关键字名。
- 有关散列的操作——values,类似于keys操作符,从散列中提取所有值。
- 有关散列的操作——delete,从散列中去掉一个关键字/值对。
- 有关散列的操作——exists,报告散列中是否存在某一个给定的关键字。
- %ENV是最有用的散列,它保存了系统的环境变量。
- <ARGV>表示打开命令行中所列出的所有文件。@ARGV是一个包含所有命令行参数的Perl数组。Perl命令和脚本文件的名字并不是数组@ARGV中的一个部分。特殊变量$0包含有正在运行的Perl脚本名字。
- 子例程是一个有名字的Perl代码段。用sub语句来定义子例程。用&符号调用子例程。
- 子例程可以通过@_数组访问参数。
内部变量查询
$- 当前页可打印的行数,属于Perl格式系统的一部分
$! 根据上下文内容返回错误号或者错误串
$” 列表分隔符
$# 打印数字时默认的数字输出格式
$$ Perl解释器的进程ID
$% 当前输出通道的当前页号
$& 与上个格式匹配的字符串
$( 当前进程的组ID
$) 当前进程的有效组ID
$* 设置1表示处理多行格式.现在多以/s和/m修饰符取代之.
$, 当前输出字段分隔符
$. 上次阅读的文件的当前输入行号
$/ 当前输入记录分隔符,默认情况是新行
$: 字符设置,此后的字符串将被分开,以填充连续的字段.
$; 在仿真多维数组时使用的分隔符.
$? 返回上一个外部命令的状态
$@ Perl解释器从eval语句返回的错误消息
$[ 数组中第一个元素的索引号
$\ 当前输出记录的分隔符
$] Perl解释器的子版本号
$^ 当前通道最上面的页面输出格式名字
$^A 打印前用于保存格式化数据的变量
$^D 调试标志的值
$^E 在非UNIX环境中的操作系统扩展错误信息
$^F 最大的文件捆述符数值
$^H 由编译器激活的语法检查状态
$^I 内置控制编辑器的值
$^L 发送到输出通道的走纸换页符
$^M 备用内存池的大小
$^O 操作系统名
$^P 指定当前调试值的内部变量
$^R 正则表达式块的上次求值结果
$^S 当前解释器状态
$^T 从新世纪开始算起,脚步本以秒计算的开始运行的时间
$^W 警告开关的当前值
$^X Perl二进制可执行代码的名字
$_ 默认的输入/输出和格式匹配空间
$| 控制对当前选择的输出文件句柄的缓冲
$~ 当前报告格式的名字
$` 在上个格式匹配信息前的字符串
$’ 在上个格式匹配信息后的字符串
$+ 与上个正则表达式搜索格式匹配的最后一个括号
$< 当前执行解释器的用户的真实ID
$ 含有与上个匹配正则表达式对应括号结果
$= 当前页面可打印行的数目
$> 当前进程的有效用户ID
包含正在执行的脚本的文件名
$ARGV 从默认的文件句柄中读取时的当前文件名
%ENV 环境变量列表
%INC 通过do或require包含的文件列表
%SIG 信号列表及其处理方式
@_ 传给子程序的参数列表
@ARGV 传给脚本的命令行参数列表
@INC 在导入模块时需要搜索的目录列表
$-[0]和$+[0] 代表当前匹配的正则表达式在被匹配的字符串中的起始和终止的位置
转自:http://frenchen.blog.163.com/blog/static/10919864720093175614345/