自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

Perl文件句柄

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

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

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

正常輸出和不正常輸出有不同的獨(dú)立間接Perl文件句柄,這樣用戶就能夠獨(dú)立地轉(zhuǎn)移它們;例如,將正常輸出發(fā)送到文件而將錯(cuò)誤輸出發(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)。用戶在開(kāi)始執(zhí)行腳本之前可以改變?nèi)齻€(gè)標(biāo)準(zhǔn)間接Perl文件句柄的連接。在Unix/Linux和Windows系統(tǒng)上,使用重定向元字符"<"和">"來(lái)完成這種改變。例如,對(duì)一個(gè)名為change.pl的腳本執(zhí)行這兩條重定向命令,將改變?cè)撃_本的標(biāo)準(zhǔn)輸入,使其從文件data.txt中讀取數(shù)據(jù),并改變標(biāo)準(zhǔn)輸出,使處理過(guò)的數(shù)據(jù)輸出到文件changed.txt中:

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

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

間接Perl文件句柄

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

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

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

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

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

【編輯推薦】

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

 

責(zé)任編輯:佚名 來(lái)源: 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-07-15 15:47:46

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

2010-09-26 17:04:48

JVMJava虛擬機(jī)

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-08-05 14:51:36

AdobeFlex

2010-06-07 13:02:46

Hadoop簡(jiǎn)介

2010-09-17 09:19:08

Java API

2010-07-27 08:59:19

FlexBuilder

2010-08-10 10:32:02

Flex語(yǔ)言

2010-06-10 18:27:00

UML語(yǔ)言

2010-07-30 10:23:46

Flex數(shù)據(jù)綁定
點(diǎn)贊
收藏

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