Perl 常用特殊變數

ccwwff發表於2017-11-07

表 A-2 檔案控制程式碼
$% 當前選中檔案控制程式碼的當前頁碼
$= 當前選中檔案控制程式碼的當前頁面長度
$- 當前選中檔案控制程式碼的頁面剩餘長度
$~ 當前選中檔案控制程式碼的報表格式名稱
$^ 當前選中檔案控制程式碼的當前頁首格式名稱

表 A-3 塊內區域性變數
$1..$9 含有與應用對應的一組括號的子記憶模式 。( 等效於 \1..\9 )
$& 上一次與模式相匹配的字串 ( 等效於 sed 編輯器 )
$` 上一次與模式相匹配的項的前導字串
$' 上一次與模式相匹配的項之後的字串
$+ 與搜尋模式相匹配的最後一個模式

表 A-4 全域性變數
$_ 預設的輸入和模式搜尋空間
$. 讀取上一個檔案控制程式碼的當前輸入行號 ; 必須在關閉前一個檔案控制程式碼後才能對下一個檔案控制程式碼重置行號
$/ 輸入記錄的分隔符 , 預設為換行符 ( 類似於 awk 中的 RS )
$\ 列印函式的輸入記錄分隔符 。 除非設定了 $\="\n" , 否則不會列印換行符
$, 列印函式的輸出欄位分隔符 。 一般在以逗號隔開的字串中不列印其定界符 , 除非設定了 $,=" "
$" 與 $, 類似 , 但它是在雙引號中提供列印陣列的 , 預設值為空格
$# 使用列印函式列印的數字輸出格式 ( 類似於 awk 中的 OMFT )
$$ 執行本指令碼的 Perl 程式程式 ID
$? 上一個關閉的管道 、 反引號中的命令以及系統函式的返回狀態
$* 預設值為 0 。 如果為 1 的話 , 表示在字串中進行多行匹配 ; 0 表示只在單行中匹配
$0 Perl 指令碼名
$[ 指向陣列或子串的第一個字元的索引 , 預設值為 0
$] 當使用 Perl-v 命令獲得版本資訊時列印出字串的第一部分
$; 多維陣列的下標分隔符 。 預設為 \034 ( 類似於 awk 的 SUBSEP )
$! 如果是數字 , 產生 errno ( 系統錯誤號 ) 的當前值 , 以及與之對應的系統錯誤字串
$@ 上一個 eval 、 do 或 require 函式產生的錯誤訊息
$< 程式的實際 uid
$> 程式的有效 uid
$( 程式的實際 gid
$) 程式的有效 gid
$: 字符集 , 將其後的字串斷開 , 並以某種格式填入連續的行 ( 從 ^ 處開始 )。 預設是以空白字元 、 換行符或冒號上隔開的 \n-
$^A formline 和 write 操作的累加器
$^C 如果 Perl 使用 -c 選項在只編譯的模式下執行 , 則返回 TRUE
$^D 使用 -D 開關開啟 Perl 除錯標記
$^E 作業系統的相關出錯資訊
$^F 傳遞給子例程的最大檔案描述符數 , 一般是 2
$^H 語法檢查的當前狀態
$^I 在使用 -i 開關時 , 原位編輯擴充套件的當前值
$^L 進紙符 , 用在格式中
$^M 緊急記憶體池
$^O 作業系統名
$^P 內部 Perl 除錯標記
$^S Perl 直譯器的狀態
$^T 指令碼執行時間 。 用於 -A 、 -C 和 -M 測試運算子 , 可設定為 time 返回的任何數字值 , 執行與當前時間有關的檔案測試
$^V Perl 版本
$^W 警告開關的當前設定情況
$^X Perl 呼叫的全路徑名
_ 下劃線 , 負責在宣告檔案時測試檔案的特殊標誌符
ARGV 用於行引數迴圈的特殊檔案控制程式碼陣列
$ARGV 從 <ARGV> 讀取時 , 含有當前檔名的變數
@ARGV 含有命令列引數的陣列

DATA  一個特殊檔案控制程式碼變數 , 負責引用 _END_ 標誌後面的內容
@F 在使用 -a 開關時 , 自動拆分輸入行所得到的陣列
@INC 一個含有檔名路徑的陣列 , require 和 do 函式將從中搜尋將要匯入的檔名路徑
%INC 一個含有檔名路徑的關聯陣列 , require 和 do 函式將從中搜尋將要匯入的檔名路徑 。 其中鍵是檔名 , 值是檔案路徑位置
%ENV 含有當前環境變數的關聯陣列
@EXPORT 匯出時的預設符號

@EXPORT_OK 根據使用者請求而匯出的符號
%EXPORT_TAGS 用於 Exporter.pm 中 , 負責對符號集合統一命名
%SIG 用於設定訊號處理例程的關聯陣列
STDERR 用於標準出錯內容的特殊檔案控制程式碼
STDIN 用於標準輸入的特殊檔案控制程式碼
STDOUT 用於標準輸出內容的特殊檔案控制程式碼



相關文章