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

Perl目錄句柄基本操作解析

開(kāi)發(fā) 架構(gòu)
Perl語(yǔ)言有很多值得學(xué)習(xí)的地方,你對(duì)Perl目錄句柄的概念你了解嗎,本文就向大家簡(jiǎn)單介紹一下有關(guān)Perl目錄句柄的內(nèi)容,希望對(duì)你有所幫助。

本文和大家重點(diǎn)討論一下Perl目錄句柄操作,從給定目錄得到其文件名列表的方法還可以使用Perl目錄句柄(directoryhandle),Perl目錄句柄外形及其行為都很像文件句柄。這里和大家簡(jiǎn)單分享一下。

Perl目錄句柄操作(opendir,readdir,closedir)

從給定目錄得到其文件名列表的方法還可以使用Perl目錄句柄(directoryhandle)。Perl目錄句柄外形及其行為都很像文件句柄。打開(kāi)(使用opendir而非open),從中讀入(使用readdir而非readline),關(guān)閉(使用closedir而非close)。不是讀入文件的內(nèi)容,而是將一個(gè)目錄中的文件名(以及一些其它東西)讀入,如下例:
 

  1. my$dir_to_process="/etc";  
  2. opendirDH,$dir_to_processordie“Cannotopen$dir_to_process:$!”;  
  3. foreach$file(readdirDH){  
  4. print“onefilein$dir_to_processis$file\n”;  
  5. }  
  6. closedirDH;  

同文件句柄一樣,Perl目錄句柄會(huì)在程序結(jié)束時(shí)自動(dòng)關(guān)閉;或者當(dāng)Perl目錄句柄被重新打開(kāi)而指向另一個(gè)目錄時(shí),也會(huì)自動(dòng)關(guān)閉。

在Perl以前的版本中,globbing它會(huì)調(diào)用別的進(jìn)程;Perl目錄句柄不會(huì),因此它更有效率,能更有效的利用系統(tǒng)資源。但是,這是一種底層(lower-level)的操作,意指我們需要自己處理更多的事情。

  1. while($name=readdirDIR){  
  2. nextunless$name=~/\.pm$/;  
  3. …moreprocessing…  
  4. }  

上述的語(yǔ)法是正則表達(dá)式而非glob。如果想要所有的非點(diǎn)(non-dot)文件(不是由點(diǎn)開(kāi)頭的文件),可以使用:

 

  1. nextif$name=~/^\./;   

 

如果想要除了通常的點(diǎn)(當(dāng)前目錄)以及點(diǎn)點(diǎn)(父目錄)之外的所有文件,我們可以明確地使用下面的語(yǔ)句: 

  1. nextif$nameeq“.”or$nameeq“..”; 

現(xiàn)在我們討論最容易混淆的部分,請(qǐng)打起精神來(lái)。readdir操作返回的文件名沒(méi)有路徑名部分,而只是文件名。因此,我們的得到的不是/etc/passwd而是passwd。由于這又是一個(gè)不同于globbing的地方,人們也經(jīng)常在這里出現(xiàn)混淆。
你需要將路徑名加上,以得到文件的全名(路徑名+文件名):

  1. opendirSOMEDIR,$dirnameordie“Cannotopen$dirname:$!”;  
  2. while(my$name=readdirSOMEDIR){  
  3. nextif$name=~/^\./;#跳過(guò)點(diǎn)文件  
  4. $name=“$dirname/$name”;#加上目錄名  
  5. nextunless–f$nameand–rname;#除非是可讀文件如果沒(méi)有加上目錄名,則測(cè)試部分將只檢測(cè)當(dāng)前目錄下的文件,而不是$dirname下的文件。 

這是使用Perl目錄句柄最常犯的一個(gè)錯(cuò)誤

【編輯推薦】

 

  1. 深入學(xué)習(xí)Perl運(yùn)算符用法
  2. Perl文件句柄概念詳解
  3. 實(shí)例解析Perl多進(jìn)程技術(shù)的應(yīng)用
  4. 解析Perl命令行程序用法
  5. 學(xué)習(xí)筆記 解析六大Perl運(yùn)算符用法

 

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

2010-07-15 13:50:16

Perl目錄操作函數(shù)

2010-07-14 15:23:19

Perl文件句柄

2010-07-14 12:57:59

Perl字符串

2010-07-19 11:12:43

Perl 不等于

2010-07-20 14:41:55

Perl語(yǔ)法

2010-07-14 15:05:21

Perl文件句柄

2010-07-14 14:46:57

Perl操作符

2010-07-13 13:49:43

Perl foreac

2010-07-19 08:39:14

Perl包

2010-07-20 15:18:41

Perl基本語(yǔ)法

2010-07-15 09:49:23

Perl標(biāo)量

2010-07-19 09:52:04

Perl標(biāo)量

2010-07-21 13:59:59

Perl引用

2010-07-20 15:02:20

Perl數(shù)組

2010-07-13 14:26:11

Perl數(shù)組

2010-07-14 14:55:07

Perl操作符

2010-07-26 14:30:29

Perl Push

2021-02-19 08:05:38

Linux命令系統(tǒng)

2010-07-19 13:49:17

Perl函數(shù)

2010-07-15 12:51:17

Perl多進(jìn)程
點(diǎn)贊
收藏

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