Perl裡的特殊變數$_

來源:互聯網
上載者:User

$_這個特殊變數是許多Perl函數的預設參數,也是許多Perl控制結構的預設控制變數. $_特殊變數也可當作一個函數調用缺失的參數來使用.

foreach 結構的控制變數是可選的,預設為$_的值.

Perl把最近發生的系統錯誤訊息儲存在特殊變數$!中.

#! /usr/local/bin/perl -W

#fig05_03.pl

foreach $name('Amanda','Jeff','Sarah','David') {

   print "$name";

}

print "/n";

foreach('Amanda','Jeff','Sarah','David'){

   print "$_";

}

print "/n";

foreach('Amanda','Jeff','Sarah','David'){

  print;

}

print "/n";

----------------------------------------------------------

輸出如下:

AmandaJeffSarahDavid

AmandaJeffSarahDavid

AmandaJeffSarahDavid

 

在參數缺失的情況下 $_ 是預設的參數.

 

 

其它一些常見的特殊變數還包括:

 

$- 當前頁可列印的行數,屬於Perl格式系統的一部分

$! 根據上下文內容返回錯誤號碼或者錯誤串

$" 清單分隔符號

$# 列印數字時預設的數字輸出格式

$$ Perl解譯器的進程ID

$% 當前輸出通道的當前頁號

$& 與上個格式匹配的字串

$( 當前進程的組ID

$) 當前進程的有效組ID

$* 設定1表示處理多行格式.現在多以/s和/m修飾符取代之.

$, 當前輸出欄位分隔符號

$. 上次閱讀的檔案的當前輸入行號

$/ 當前輸入記錄分隔字元,預設情況是新行

$: 字元設定,此後的字串將被分開,以填充連續的欄位.

$; 在模擬多維陣列時使用的分隔字元.

$? 返回上一個外部命令的狀態

$@ Perl解譯器從eval語句返回的錯誤訊息

$[ 數組中第一個元素的索引號

$/ 當前輸出記錄的分隔字元

$] Perl解譯器的子版本號碼

$^ 當前通道最上面的頁面輸出格式名字

$^A 列印前用於儲存格式化資料的變數

$^D調試標誌的值

$^E在非UNIX環境中的作業系統擴充錯誤資訊

$^F最大的檔案捆述符數值

$^H由編譯器啟用的語法檢查狀態

$^I內建控制編輯器的值

$^L發送到輸出通道的走紙換頁符

$^M備用記憶體池的大小

$^O作業系統名

$^P指定當前調試值的內部變數

$^RRegex塊的上次求值結果

$^S當前解譯器狀態

$^T從新世紀開始算起,腳步本以秒計算的開始啟動並執行時間

$^W警告開關的當前值

$^X Perl二進位可執行代碼的名字

$_ 預設的輸入/輸出和格式匹配空間

$| 控制對當前選擇的輸出檔案控制代碼的緩衝

$~ 當前報告格式的名字

$` 在上個格式匹配資訊前的字串

$’ 在上個格式匹配資訊後的字串

$+ 與上個Regex搜尋格式匹配的最後一個括弧

$< 當前執行解譯器的使用者的真實ID

$<digits>含有與上個匹配Regex對應括弧結果

$= 當前頁面可列印行的數目

$> 當前進程的有效使用者ID

$0 包含正在執行的指令碼的檔案名稱

$ ARGV 從預設的檔案控制代碼中讀取時的當前檔案名稱

%ENV 環境變數列表

%INC 通過do或require包含的檔案清單

%SIG 訊號列表及其處理方式

@_ 傳給子程式的參數列表

@ARGV 傳給指令碼的命令列參數列表

@INC 在匯入模組時需要搜尋的目錄列表

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.