預定義變數的完整文件: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 可以將 $^M
的內容用作 die()
後的緊急記憶體池
${^MAX_NESTED_EVAL_BEGIN_BLOCKS} - 此變數決定允許的 eval EXPR
/BEGIN
或 require
/BEGIN
巢狀區塊的最大數量
$^O - 此 Perl 副本建置時所使用的作業系統名稱,在組態過程中決定
%SIG - 雜湊 %SIG
包含訊號的訊號處理常式
%{^HOOK} - 此雜湊包含當呼叫難以或不可能封裝的各種 Perl 關鍵字時所呼叫的程式碼參考
$^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} - 正規表示式偵錯旗標的目前值
${^RE_TRIE_MAXBUF} - 控制如何套用某些正規表示式最佳化,以及它們使用多少記憶體
$ARGV - 從 <>
讀取時,包含目前檔案的名稱
@ARGV - 陣列 @ARGV
包含預計提供給指令碼的命令列引數
ARGV - 特殊檔案句柄,在 @ARGV
中反覆運算命令列檔名
ARGVOUT - 特殊檔案句柄,在使用 -i 進行就地編輯處理時,指向目前開啟的輸出檔案
$, - print 算子的輸出欄位分隔符號
$. - 最後存取的檔案句柄的目前行號
$/ - 輸入記錄分隔符號,預設為換行符號
$\ - print 算子的輸出記錄分隔符號
$| - 如果設為非零,強制立即沖刷,且在目前選取的輸出頻道上每次寫入或列印後沖刷
${^LAST_FH} - 此唯讀變數包含對最後讀取檔案句柄的參照
$^A - write()
累加器目前的值,適用於 format()
列
$^L - 格式輸出為換頁符號的內容
$% - 目前選取的輸出頻道目前頁碼
$- - 目前選取的輸出頻道頁面上剩餘的列數
$: - 目前字元組,字串中可在此字元組之後斷行以填滿格式中延續欄位(以 ^
開頭)
$= - 目前選取的輸出頻道目前頁面長度(可列印列)
$^ - 目前選取的輸出頻道目前頁面頂端格式的名稱
$~ - 目前選取的輸出頻道目前報表格式的名稱
${^CHILD_ERROR_NATIVE} - 最後一次管線關閉、反引號 (``
) 命令、成功呼叫 wait()
或 waitpid()
,或來自 system()
算子所傳回的原生狀態
$^E - 目前作業系統特定的錯誤資訊
$^S - 解譯器目前狀態
$^W - 警告開關的目前值,如果使用 -w 則最初為 true,否則為 false,但可直接修改
${^WARNING_BITS} - 目前由 use warnings
pragma 啟用的警告檢查組
$! - 參考時,$!
會擷取 C errno
整數變數的目前值
%! - %!
的每個元素只有在 $!
設為該值時,才會為 true
$? - 由最後一次 pipe 關閉、反引號 (``
) 命令、成功呼叫 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} - 此變數不再有任何功能