偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

術(shù)語匯編 全面認(rèn)識Perl文件句柄

開發(fā) 架構(gòu)
Perl文件句柄的概念你是否聽過,Perl腳本通過Perl文件句柄連接到外部世界。從Perl文件句柄讀就導(dǎo)入外部數(shù)據(jù),向間接Perl文件句柄寫則導(dǎo)出數(shù)據(jù)。

本文和大家重點(diǎn)討論一下Perl文件句柄的概念,Perl腳本通過Perl文件句柄連接到外部世界。當(dāng)Perl腳本開始執(zhí)行時,默認(rèn)地打開3個Perl文件句柄:STDIN,STDOUT和STDERR。

Perl文件句柄

Perl腳本通過間接Perl文件句柄連接到外部世界。從間接Perl文件句柄讀就導(dǎo)入外部數(shù)據(jù),向間接Perl文件句柄寫則導(dǎo)出數(shù)據(jù)。根據(jù)間接Perl文件句柄的創(chuàng)建方式,可能連向:

磁盤文件。
硬件設(shè)備,例如打印機(jī)等。
本地進(jìn)程,例如窗口系統(tǒng)中的一個命令行窗口。
遠(yuǎn)程進(jìn)程,例如一個網(wǎng)絡(luò)服務(wù)器。
"位存儲桶"設(shè)備,也就是Unix/Linux系統(tǒng)中的/dev/null,該設(shè)備僅是吸引數(shù)據(jù)并忽略它。
間接Perl文件句柄可以是任何有效的Perl標(biāo)識符,由大小寫字母、數(shù)字和下劃線字符組成。不同于其他變量的是,間接Perl文件句柄沒有標(biāo)志性的前綴(像"$","@","%")。因此,為了使間接Perl文件句柄有所區(qū)別,Perl程序員經(jīng)常以全部大寫字母表示它們。

當(dāng)Perl腳本開始執(zhí)行時,默認(rèn)地打開3個間接Perl文件句柄:STDIN,STDOUT和STDERR。STDOUT間接Perl文件句柄(即"standardoutput")標(biāo)準(zhǔn)輸出,是默認(rèn)的輸出間接Perl文件句柄。發(fā)送給這個間接Perl文件句柄的數(shù)據(jù)在用戶指定的輸出設(shè)備上顯示,通常是腳本開始運(yùn)行的命令行窗口。STDIN(即"standardinput")標(biāo)準(zhǔn)輸入,是默認(rèn)的輸入間接Perl文件句柄。從這個間接Perl文件句柄讀取的數(shù)據(jù)取自用戶選擇的輸入設(shè)備,通常是鍵盤。STDERR(即"standarderror")標(biāo)準(zhǔn)錯誤輸出,用于錯誤信息、診斷、調(diào)試和其他類似的偶發(fā)輸出,默認(rèn)情況下,STDERR和STDOUT使用相同的輸出設(shè)備,但是用戶可以自行改變。

正常輸出和不正常輸出有不同的獨(dú)立間接Perl文件句柄,這樣用戶就能夠獨(dú)立地轉(zhuǎn)移它們;例如,將正常輸出發(fā)送到文件而將錯誤輸出發(fā)送到屏幕。

  1. #!/usr/bin/perl-w  
  2. chomp($input=<>);  
  3. print"IfIheardyoucorrectly,yousaid:$input\n";  
  4.  

 

STDERR是warn()函數(shù)和die()函數(shù)的默認(rèn)目標(biāo)。用戶在開始執(zhí)行腳本之前可以改變?nèi)齻€標(biāo)準(zhǔn)間接Perl文件句柄的連接。在Unix/Linux和Windows系統(tǒng)上,使用重定向元字符"<"和">"來完成這種改變。例如,對一個名為change.pl的腳本執(zhí)行這兩條重定向命令,將改變該腳本的標(biāo)準(zhǔn)輸入,使其從文件data.txt中讀取數(shù)據(jù),并改變標(biāo)準(zhǔn)輸出,使處理過的數(shù)據(jù)輸出到文件changed.txt中:

#perlchange.pl<data.txt>changed.txt

標(biāo)準(zhǔn)錯誤不改變,因此診斷信息(例如,從內(nèi)置的warn()函數(shù)和die()函數(shù)返回的信息)在屏幕上顯示。

間接Perl文件句柄

間接間接Perl文件句柄可以使名字空間的管理更簡單。由于間接Perl文件句柄對于當(dāng)前包是全局
的,兩個函數(shù)試圖同時打開"INFILE"會導(dǎo)致沖突。如果兩個函數(shù)使用間接文
件句柄比如"my$infile",則不會發(fā)生沖突,也不用擔(dān)心以后會發(fā)生沖突。

"open"的***個參數(shù)可以是一個間接Perl文件句柄的引用。在Perl5.6.0中,如果
參數(shù)沒有初始化,Perl會自動創(chuàng)建一個間接Perl文件句柄,然后存儲在***個參數(shù)中,
例如:

  1. open(my$in,$infile)ordie"Couldn'tread$infile:$!";  
  2. while(<$in>){  
  3. #dosomethingwith$_  
  4. }  
  5. close$in;  
  6.  

 還有一個方便之處是當(dāng)運(yùn)行到作用域外或者使用undefine時,Perl文件句柄會
自動關(guān)閉。

subfirstline{
open(my$in,shift)&&returnscalar<$in>;
#noclose()required

【編輯推薦】

  1. 解析四大Perl操作符用法
  2. Perl語言中的“指針”用法解析
  3. Perl二維數(shù)組用法全程剖析
  4. 學(xué)習(xí)筆記 深入剖析Perl線程的生命周期
  5. Perl多線程的兩種實(shí)現(xiàn)方式
 

 

責(zé)任編輯:佚名 來源: csdn.net
相關(guān)推薦

2010-07-15 17:50:47

Perl模式

2010-07-28 15:21:01

Flex函數(shù)

2010-07-13 10:21:19

2010-07-19 16:56:56

Perl線程

2010-07-26 16:54:15

Perl引用

2010-07-13 09:02:16

Perl

2010-07-20 09:05:08

Perl類

2010-09-26 17:04:48

JVMJava虛擬機(jī)

2010-07-15 15:47:46

Perl守護(hù)進(jìn)程

2010-07-20 16:25:50

Perl正則表達(dá)式

2010-07-14 11:27:42

Perl多進(jìn)程

2010-07-16 17:12:58

Perl析構(gòu)函數(shù)

2010-07-13 09:58:51

Perl關(guān)聯(lián)數(shù)組

2010-06-07 13:02:46

Hadoop簡介

2010-08-05 14:51:36

AdobeFlex

2010-09-17 09:19:08

Java API

2010-06-10 18:27:00

UML語言

2010-07-27 08:59:19

FlexBuilder

2010-08-10 10:32:02

Flex語言

2010-06-11 09:33:47

UML順序圖
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號