您好,登錄后才能下訂單哦!
小編給大家分享一下Perl文件句柄怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Perl文件句柄
Perl腳本通過間接Perl文件句柄連接到外部世界。從間接Perl文件句柄讀就導入外部數據,向間接Perl文件句柄寫則導出數據。根據間接Perl文件句柄的創建方式,可能連向:
磁盤文件。
硬件設備,例如打印機等。
本地進程,例如窗口系統中的一個命令行窗口。
遠程進程,例如一個網絡服務器。
"位存儲桶"設備,也就是Unix/Linux系統中的/dev/null,該設備僅是吸引數據并忽略它。
間接Perl文件句柄可以是任何有效的Perl標識符,由大小寫字母、數字和下劃線字符組成。不同于其他變量的是,間接Perl文件句柄沒有標志性的前綴(像"$","@","%")。因此,為了使間接Perl文件句柄有所區別,Perl程序員經常以全部大寫字母表示它們。
當Perl腳本開始執行時,默認地打開3個間接Perl文件句柄:STDIN,STDOUT和STDERR。STDOUT間接Perl文件句柄(即"standardoutput")標準輸出,是默認的輸出間接Perl文件句柄。發送給這個間接Perl文件句柄的數據在用戶指定的輸出設備上顯示,通常是腳本開始運行的命令行窗口。STDIN(即"standardinput")標準輸入,是默認的輸入間接Perl文件句柄。從這個間接Perl文件句柄讀取的數據取自用戶選擇的輸入設備,通常是鍵盤。STDERR(即"standarderror")標準錯誤輸出,用于錯誤信息、診斷、調試和其他類似的偶發輸出,默認情況下,STDERR和STDOUT使用相同的輸出設備,但是用戶可以自行改變。
正常輸出和不正常輸出有不同的獨立間接Perl文件句柄,這樣用戶就能夠獨立地轉移它們;例如,將正常輸出發送到文件而將錯誤輸出發送到屏幕。
#!/usr/bin/perl-w chomp($input=<>); print"IfIheardyoucorrectly,yousaid:$input\n";
STDERR是warn()函數和die()函數的默認目標。用戶在開始執行腳本之前可以改變三個標準間接Perl文件句柄的連接。在Unix/Linux和Windows系統上,使用重定向元字符"<"和">"來完成這種改變。例如,對一個名為change.pl的腳本執行這兩條重定向命令,將改變該腳本的標準輸入,使其從文件data.txt中讀取數據,并改變標準輸出,使處理過的數據輸出到文件changed.txt中:
#perlchange.pl<data.txt>changed.txt
標準錯誤不改變,因此診斷信息(例如,從內置的warn()函數和die()函數返回的信息)在屏幕上顯示。
間接Perl文件句柄
間接間接Perl文件句柄可以使名字空間的管理更簡單。由于間接Perl文件句柄對于當前包是全局
的,兩個函數試圖同時打開"INFILE"會導致沖突。如果兩個函數使用間接文
件句柄比如"my$infile",則不會發生沖突,也不用擔心以后會發生沖突。
"open"的***個參數可以是一個間接Perl文件句柄的引用。在Perl5.6.0中,如果
參數沒有初始化,Perl會自動創建一個間接Perl文件句柄,然后存儲在***個參數中,
例如:
open(my$in,$infile)ordie"Couldn'tread$infile:$!"; while(<$in>){ #dosomethingwith$_ } close$in;
還有一個方便之處是當運行到作用域外或者使用undefine時,Perl文件句柄會
自動關閉。
subfirstline{
open(my$in,shift)&&returnscalar<$in>;
#noclose()required
}
【編輯推薦】
以上是“Perl文件句柄怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。