预定义变量的完整文档:perlvar
$_ - 默认输入和模式搜索空间
@_ - 在子例程内,数组 @_
包含传递给该子例程的参数
$" - 当数组或数组切片插值到双引号字符串或类似上下文(如 /.../
)中时,其元素将由此值分隔
$$ - 运行此脚本的 Perl 的进程号
$0 - 包含正在执行的程序的名称
$( - 此进程的实际 gid
$) - 此进程的有效 gid
$< - 此进程的真实 uid
$> - 此进程的有效 uid
$; - 多维数组模拟的子脚本分隔符
$a、$b - 使用 sort()
时特殊包变量,请参阅 "sort" in perlfunc
%ENV - 哈希 %ENV
包含你的当前环境
$] - Perl 解释器的修订版、版本和子版本,表示为 5.XXXYYY 形式的小数,其中 XXX 是版本 / 1e3,YYY 是子版本 / 1e6
$^F - 最大系统文件描述符,通常为 2。系统文件描述符传递给 exec()
ed 进程,而较高的文件描述符则不会
@F - 数组 @F
包含在自动拆分模式开启时读入的每一行的字段
@INC - 数组 @INC
包含 do EXPR
、require
或 use
构造查找其库文件的位置列表
%INC - 哈希 %INC
包含通过 do
、require
或 use
运算符包含的每个文件名条目
$INC - 从 5.37.7 开始,当执行 @INC
挂钩时,保存挂钩的 @INC
数组索引将本地化为 $INC
变量
$^I - 就地编辑扩展的当前值
@ISA - 每个包都包含一个名为 @ISA
的特殊数组,其中包含该类的父类列表(如果存在)
$^M - Perl 可以在 die()
ing 后使用 $^M
的内容作为紧急内存池
${^MAX_NESTED_EVAL_BEGIN_BLOCKS} - 此变量确定允许的最大 eval EXPR
/BEGIN
或 require
/BEGIN
块嵌套数
$^O - 此 Perl 副本构建时所在的操作系统名称,在配置过程中确定
%SIG - 哈希 %SIG
包含信号的信号处理程序
%{^HOOK} - 此哈希包含在调用难以或不可能包装的各种 Perl 关键字时调用的 coderef
$^T - 程序开始运行的时间,以自纪元(1970 年初)以来的秒数表示
$^X - 用于执行当前 Perl 副本的名称,来自 C 的 argv[0]
或(在支持的情况下)/proc/self/exe
$<数字> ($1, $2, ...) - 包含当前动态作用域中上次成功模式匹配中来自相应捕获括号组的子模式
@{^CAPTURE} - 一个数组,公开上次成功模式匹配的捕获缓冲区(如果有)的内容,不包括已退出的嵌套块中匹配的模式
$& - 上次成功模式匹配匹配的字符串
${^MATCH} - 仅当使用 /p
修饰符编译或执行模式时,才保证返回已定义的值
$` - 上次成功模式匹配匹配的任何内容之前的字符串
${^PREMATCH} - 仅当使用 /p
修饰符执行模式时,才保证返回已定义的值
$' - 上次成功模式匹配匹配的任何内容之后的字符串
${^POSTMATCH} - 仅当使用 /p
修饰符编译或执行模式时,才保证返回已定义的值
$+ - 上次成功搜索模式中使用率最高的捕获组匹配的文本
$^N - 上次成功匹配中最近关闭(即具有最右侧闭合括号的组)的使用组匹配的文本
@+ - 此数组保存上次成功匹配的结尾偏移量以及模式包含的任何匹配捕获缓冲区
%+ - 与 @+
类似,%+
哈希允许访问上次成功匹配中当前活动动态作用域中可能存在的已命名捕获缓冲区
@- - 此数组保存上次成功匹配的开头偏移量以及它包含的任何捕获缓冲区
%- - 与 %+
类似,此变量允许访问当前活动动态作用域中上次成功匹配中的已命名捕获组
${^LAST_SUCCESSFUL_PATTERN} - 当前作用域中匹配的最后一个成功模式
${^RE_COMPILE_RECURSION_LIMIT} - 当前值,表示在正则表达式编译期间任何时候可能存在的未闭合括号组的最大数量
${^RE_DEBUG_FLAGS} - regex 调试标志的当前值
${^RE_TRIE_MAXBUF} - 控制如何应用某些 regex 优化以及它们使用多少内存
$ARGV - 从 <>
读取时包含当前文件的文件名
@ARGV - 数组 @ARGV
包含脚本的命令行参数
ARGV - 在 @ARGV
中迭代命令行文件名的特殊文件句柄
ARGVOUT - 使用 -i 执行就地编辑处理时指向当前打开的输出文件的特殊文件句柄
$, - print 运算符的输出字段分隔符
$. - 访问的最后一个文件句柄的当前行号
$/ - 输入记录分隔符,默认为换行符
$\ - print 运算符的输出记录分隔符
$| - 如果设置为非零,则在当前选定的输出通道上每次写入或打印后立即强制刷新
${^LAST_FH} - 此只读变量包含对上次读取的文件句柄的引用
$^A - format()
行的 write()
累加器的当前值
$^L - 将格式输出为换页符的内容
$% - 当前选定输出通道的当前页码
$- - 当前选定输出通道的页面上剩余的行数
$: - 当前字符集,在格式中,字符串可以中断以填充延续字段(以 ^
开头)
$= - 当前选定输出通道的当前页长(可打印行)
$^ - 当前选定输出通道的当前页眉格式的名称
$~ - 当前选定输出通道的当前报表格式的名称
${^CHILD_ERROR_NATIVE} - 上次管道关闭、反引号 (``
) 命令、成功调用 wait()
或 waitpid()
,或来自 system()
运算符返回的本机状态
$^E - 当前操作系统特有的错误信息
$^S - 解释器的当前状态
$^W - 警告开关的当前值,如果使用了 -w 则最初为 true,否则为 false,但可直接修改
${^WARNING_BITS} - 由 use warnings
实用程序启用的当前警告检查集
$! - 引用时,$!
检索 C errno
整数变量的当前值
%! - %!
的每个元素只有在 $!
设置为该值时才具有真值
$? - 上次管道关闭、反引号 (``
) 命令、成功调用 wait()
或 waitpid()
,或来自 system()
运算符返回的状态
$@ - 来自上次 eval
运算符的 Perl 错误,即上次捕获的异常
$^C - 与 -c 开关关联的标志的当前值
$^D - 调试标志的当前值
${^GLOBAL_PHASE} - perl 解释器的当前阶段
$^H - 此变量包含 perl 解释器的编译时提示
$^P - 用于调试支持的内部变量
${^TAINT} - 反映污染模式是否开启或关闭
${^SAFE_LOCALES} - 反映此 perl 是否可以使用安全区域设置操作(值为 1 时)或不能使用(值为 0 时)
${^UNICODE} - 反映 Perl 的特定 Unicode 设置
${^UTF8CACHE} - 此变量控制内部 UTF-8 偏移量缓存代码的状态
${^UTF8LOCALE} - 此变量指示 perl 在启动时是否检测到 UTF-8 区域设置
$# - $#
是一个变量,可用于设置打印数字的格式
$* - $*
是一个变量,可用于启用多行匹配
$[ - 此变量存储数组中第一个元素的索引,以及子字符串中第一个字符的索引
${^ENCODING} - 它用于保存对用于将源代码转换为 Unicode 的 Encode
对象的对象引用
${^WIN32_SLOPPY_STAT} - 此变量不再具有任何功能