默认输入和模式搜索空间。以下对等效
while (<>) {...} # equivalent only in while!
while (defined($_ = <>)) {...}
/^Subject:/
$_ =~ /^Subject:/
tr/a-z/A-Z/
$_ =~ tr/a-z/A-Z/
chomp
chomp($_)
以下是在不使用 $_
的情况下 Perl 将假定 $_
的位置
以下函数使用 $_
作为默认参数
abs、alarm、chomp、chop、chr、chroot、cos、defined、eval、evalbytes、exp、fc、glob、hex、int、lc、lcfirst、length、log、lstat、mkdir、oct、ord、pos、print、printf、quotemeta、readlink、readpipe、ref、require、reverse(仅在标量上下文中)、rmdir、say、sin、split(对于其第二个参数)、sqrt、stat、study、uc、ucfirst、unlink、unpack。
除 -t
(默认为 STDIN)之外的所有文件测试(-f
、-d
)。请参阅 perlfunc 中的“ -X”
在不使用 =~
运算符时使用的模式匹配操作 m//
、s///
和 tr///
(又名 y///
)。
如果没有提供其他变量,则在 foreach
循环中的默认迭代器变量。
grep()
和 map()
函数中的隐式迭代器变量。
given()
的隐式变量。
当 <FH>
、readline
、readdir
或 each
操作的结果作为 while
测试的唯一条件时,放置下一个值或输入记录的默认位置。在 while
测试之外,不会发生这种情况。
$_
是一个全局变量。
然而,在 perl v5.10.0 和 v5.24.0 之间,可以通过编写 my $_
来按词法使用它。然后可以使用 our $_
使 $_
引用同一作用域中的全局 $_
。此实验功能已被删除,现在是一个致命错误,但您可能会在较旧的代码中遇到它。
助记符:在某些操作中理解下划线。