* 特殊变量 *
- 通常以$,@,%作为前缀
有些特殊变量有很长的英文名,想使用英文名的特殊变量,需要在投不添加use English;
全局标量特殊变量
$_ 默认输入和模式匹配内容。 $ARG $. 前一次读的文件句柄的当前行号 $NR $/ 输入记录分隔符,默认是新行字符。如用undef这个变量,将读到文件结尾。 $RS $, 输出域分隔符 $OFS $\ 输出记录分隔符 $ORS $” 该变量同 $,类似,但应用于向双引号引起的字符串(或类似的内插字符串)中内插数组和切片值的场合。默认为一个空格。 $LIST_SEPARATOR $; 在仿真多维数组时使用的分隔符。默认为 “\034”。 $SUBSCRIPT_SEPARATOR $^L 发送到输出通道的走纸换页符。默认为 “\f”. $FORMAT_FORMFEED $: The current set of characters after which a string may be broken to fill continuation fields (starting with ^) in a format. Default is “\n”“. $FORMAT_LINE_BREAK_CHARACTERS $^A 打印前用于保存格式化数据的变量 $ACCUMULATOR $# 打印数字时默认的数字输出格式(已废弃)。 $OFMT $? 返回上一个外部命令的状态 $CHILD_ERROR $! 这个变量的数字值是errno的值,字符串值是对应的系统错误字符串 OSERRORor ERRNO $@ 命令eval的错误消息.如果为空,则表示上一次eval命令执行成功 $EVAL_ERROR $$ 运行当前Perl脚本程序的进程号 PROCESSIDor PID $< 当前进程的实际用户号 REALUSERIDor UID $> 当前进程的有效用户号 EFFECTIVEUSERIDor EUID $( 当前进程的实际组用户号 REALGROUPIDor GID $) 当前进程的有效组用户号 EFFECTIVEGROUPIDor EGID $0 包含正在执行的脚本的文件名 $PROGRAM_NAME $[ 数组的数组第一个元素的下标,默认是 0。 $] Perl的版本号 $PERL_VERSION $^D 调试标志的值 $DEBUGGING $^E 在非UNIX环境中的操作系统扩展错误信息 $EXTENDED_OS_ERROR $^F 最大的文件捆述符数值 $SYSTEM_FD_MAX $^H 由编译器激活的语法检查状态 $^I 内置控制编辑器的值 $INPLACE_EDIT $^M 备用内存池的大小 $^O 操作系统名 $OSNAME $^P 指定当前调试值的内部变量 $PERLDB $^T 从新世纪开始算起,脚步本以秒计算的开始运行的时间 $BASETIME $^W 警告开关的当前值 $WARNING $^X Perl二进制可执行代码的名字 $EXECUTABLE_NAME $ARGV 从默认的文件句柄中读取时的当前文件名 全局数组特殊变量
@ARGV 传给脚本的命令行参数列表 @INC 在导入模块时需要搜索的目录列表 @F 命令行的数组输入 全局哈希特殊变量
%INC
散列表%INC包含所有用do或require语句包含的文件.关键字是文件名,值是这个文件的路径 %ENV
包含当前环境变量 %SIG
信号列表及其处理方式 全局特殊文件句柄
ARGV
遍历数组变量@ARGV中的所有文件名的特殊文件句柄 STDERR
标准错误输出句柄 STDIN
标准输入句柄 STDOUT
标准输出句柄 DATA
特殊文件句柄引用了在文件中 __END__ 标志后的任何内容包含脚本内容。或者引用一个包含文件中__DATA__ 标志后的所有内容,只要你在同一个包有读取数据,__DATA__ 就存在。 _ (下划线)
特殊的文件句柄用于缓存文件信息(fstat、stat和lstat)。 全局特殊常量
__END__
脚本的逻辑结束,忽略后面的文本。 __FILE__
当前文件名 __LINE__
当前行号 __PACKAGE__
当前包名,默认的包名是main。 正则表达式特殊变量
$n
包含上次模式匹配的第n个子串 $&
前一次成功模式匹配的字符串 $MATCH
$`
前次匹配成功的子串之前的内容 $PREMATCH
$’
前次匹配成功的子串之后的内容 $POSTMATCH
$+
与上个正则表达式搜索格式匹配的最后一个括号。例如:
/Version: (.*)|Revision: (.*)/ && ($rev </span><span class="pun">=</span><span class="pln"> $+);
$LAST_PAREN_MATCH
文件句柄特殊变量
$|
如果设置为零,在每次调用函数write或print后,自动调用函数fflush,将所写内容写回文件 $OUTPUT_AUTOFLUSH
$%
当前输出页号 $FORMAT_PAGE_NUMBER
$=
当前每页长度。默认为 60。 $FORMAT_LINES_PER_PAGE
$-
当前页剩余的行数 $FORMAT_LINES_LEFT
$~
当前报表输出格式的名称。默认值是文件句柄名。 $FORMAT_NAME
$^
当前报表输出表头格式的名称。默认值是带后缀”_TOP”的文件句柄名。 $FORMAT_TOP_NAME