預設輸入和模式搜尋空間。下列配對是等效的
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.
所有檔案測試 (-f
, -d
),除了 -t
,其預設為 STDIN。請參閱 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 $_
讓 $_
參照同範圍內的全域 $_
。此實驗功能已被移除,現在會造成致命錯誤,但您可能會在舊程式碼中遇到它。
助記符:底線在特定作業中會被理解。