Perl内置特殊变量总结

2019-10-01 12:23:39刘景俊

ARGV 用于行参数循环的特殊文件句柄数组
$ARGV  从 <ARGV> 读取时, 含有当前文件名的变量
@ARGV 含有命令行参数的数组
DATA 一个特殊文件句柄变量, 负责引用 _END_ 标志后面的内容
@F 在使用 -a 开关时, 自动拆分输入行所得到的数组
@INC 一个含有文件名路径的数组, require 和 do 函数从中搜索将要导入的文件名路径
%INC 一个含有文件名路径的关联数组, require 和 do 函数将从中搜索将要导入的文件名路径。 其中键是文件名, 值是文件路径位置
%ENV 含有当前环境变量的关联数组
@EXPORT 导出时的默认符号
@EXPORT_OK 根据用户请求而导出的符号
%EXPORT_TAGS 用于 Exporter.pm 中, 负责对符号集合统一命名
%SIG 用于设置信号处理例程的关联数组
STDERR 用于标准出错内容的特殊文件句柄
STDIN 用于标准输入的特殊文件句柄
STDOUT 用于标准输出内容的特殊文件句柄
$-[0] 和 $+[0]   代表当前匹配的正则表达式在被匹配的字符串中的起始和终止的位置

[ 块内局部变量 ]

$1..$9 含有与对应的一组括号的子记忆模式。(等效于1..9)
$& 上一次与模式相匹配的字符串(等效于 sed 编辑器)
$` 上一次与模式相匹配的项的前导字符串
$' 上一次与模式相匹配的项之后的字符串
$+ 与搜索模式相匹配的最后一个模式
@_ 传给子程序的参数列表

附:另一篇总结

一、正则表达式特殊变量:
1、$n   :包含上次模式匹配的第n个子串
2、$&   :前一次成功模式匹配的字符串
3、$`   :前次匹配成功的子串之前的内容
4、$'   :前次匹配成功的子串之后的内容
5、$+  :前一次使用括号的模式匹配的字符串.

二、文件句柄特殊变量:
1、$|  :如果设置为零,在每次调用函数write或print后,自动调用函数fflush,将所写内容写回文件
2、$%  :当前输出页号
3、$=  :当前每页长度
4、$-  :当前页剩余的行数
5、$~  :当前报表输出格式的名称.默认值是文件句柄名.
6、$^  :当前报表输出表头格式的名称.默认值是带后缀”_TOP”的文件句柄名.

三、全局特殊变量:
1、$_和$ARG  :默认输入和模式匹配内容.如果不指定接收输入的变量或执行模式匹配的字符串
2、$.和$NR  :前一次读的文件句柄的当前行号
3、$/和$RS  :输入记录分隔符,默认是新行字符.如用undef这个变量,将读到文件结尾
4、$,的$OFS  :输出域分隔符.
5、$和$ORS  :输出记录分隔符
6、$:    :断行字符,默认是”n-”三个字符
7、$!  :这个变量的数字值是errno的值,字符串值是对应的系统错误字符串