精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Perl文件操作七大技巧揭秘

開發 架構
你對Perl語言中Perl文件操作的方法是否比較明確,這里向大家簡單介紹幾種Perl文件操作的技巧,希望本文的介紹能讓你有所收獲。

本文和大家重點學習一下幾種Perl文件操作技巧,主要從七個方面來向大家介紹,相信通過本文的學習你對Perl文件操作的方法有深刻的認識。

Perl文件操作技巧

Perl文件操作一:找到具有指定特征的文件  

  1. $path="/path/to/dir/";  
  2.   opendirDIR,$path;  
  3.   @arr1=readdirDIR;  
  4.   @arr2=grep{-T"$path$_"}@arr1;#textfilesonly  
  5.   @arr3=grep{!-d"$path$_"}@arr1;#noDirectories  
  6.   @arr4=grep{-s"$path$_"<1024}@arr1;#lessthan1K  

   代碼解釋:假如被測試的目錄項是一個文本文件,那么-T文件操作符就會返回真。其實針對目錄項的測試操作還有很多。(注:文件和目錄在系統中都是以目錄項的形式來管理的,所以要區別一個目錄項指向的是一個文件還是一個目錄需要相應的操作符)。注意上面的readdir函數返回指定目錄下的所有目錄項。因為在grep函數中對目錄項的測試需要文件的完全路徑,所以我們把$PATH(存儲了目錄項的部分路徑)和$_(存儲了目錄項的名字)中的內容聯合起來得到文件的完全路徑

  Perl文件操作二:對目錄進行遞歸搜索  

  1. useFile::Find;  
  2.   find(\&handleFind,'imac:documents:code');  
  3.   subhandleFind{  
  4.   my$foundFile=$File::Find::name;  
  5.   print"$foundFile\n"if($foundFile=~/\.html?$/i);  
  6.   }  

   RESULT:imac:documents:code:index.htmlimac:documents:code:perl:example.HTM運行結果:代碼討論:那些工作于Unix系統的Perl程序員可以非常簡便的利用UNIX上提供的工具來完成許多日常的工作,比如遞歸的列出指定目錄下的所有目錄項(也就是列出指定目錄及指定目錄子目錄下的所有目錄項目)。然而Perl的一個***的特征就是可以運行于很多的平臺上。所以如果你碰巧工作在一個非UNIX的平臺,或者如果你雖工作在UNIX平臺,但不喜歡使用系統工具寫腳本,你可以選擇Perl。要完成這些巧妙的工作,你需要使用perl中的File:Find模塊。當你加載了這個模塊的時候,你就可以使用其中的find子函數,在調用這個函數的時候,需要帶參數:***個參數是一個函數的引用,這個函數由你自己建立,每次一個文件被找到的時候,它都會運行。接下來的一個參數是一串你想要搜索的路徑。我寫的這個示例腳本是運行在MacintoshOS8.x系統上的,所以我使用了Mac系統的路徑分隔符:。如果是在Windows,你可以用反斜杠,如果是在Unix系統則是正斜杠(至于在Amiga系統上用什么我就不知道了)??傊琭ind函數將會在每次找到一個文件的時候調用你給出的子函數,而且會對子目錄進行查找。在我的handledfind子函數中,我通過這個模塊特定變量$File::Find::name來獲得每次find找到的文件名。然后,就可以對該文件執行任何你想的測試,在上面的例子中,我們輸出有.html的擴展名文件名。

  Perl文件操作三:文件讀操作---一次讀入整個文件內容 

  1. openFH,"<anthem";  
  2. $/=undef;  
  3. $slurp=;  
  4. print$slurp; 

   運行結果:一下就顯示了所有的文件內容,此刻你應該非常的自豪。:)代碼討論:尖括號<>對文件句柄進行操作,在標量上下文中它將返回文件的下一條記錄,在數組上下文中它將返回所有的記錄。在默認的情況下,文件中的記錄被認為是由換行符分開(例如回車或其他代表新行開始的字符)。你可以重新設定這個默認的分隔符,然后Perl將會以你指定的分隔符為準來替代換行符。全局變量$/里存儲了輸入文件的分隔符,如果你把$/的值設置為undef,那么Perl將會認為整個文件是一條記錄(因為此刻已經沒有文件分隔符了)。牢記$/是全局變量,千萬不要在腳本的其他地方不經意的改變它,這個錯誤將很難被發現。你可能會問,我們能否不改變$/,而采用把文件的所有記錄讀到一個數組中,然后把數組聯合成一個很長的字符串(比如$slurp=join("",);)的方法實現一次讀入文件。當然這也是一個有效的解決辦法,但是你會發現它很慢,是否選用它取決你的應用,取決于你是否關心運行速度。

  Perl文件操作四:賦值---把一個文件句柄賦給另一個文件句柄

  open(MYOUT,">bottle.txt");

 *STDOUT=*MYOUT;print"message";運行結果:文本文件bottle.txt現在包含message字符串。代碼討論:以前可能你配合使用過Print函數和文件句柄,但是你是否知道就算你沒有使用文件句柄,Perl也默認你在使用一個稱為STDOUT的句柄?C程序員知道STDOUT代表標準輸出,也就是通常的屏幕,或終端窗口(或者是CGI程序的輸出端-瀏覽器)。在這里我們完成的工作是創建我們自己的文件句柄,它指向一個給定的文件,然后我們做了一件比較鬼的工作,使用*前綴把STDOUT轉換為typeglob類型。Typeglob類型的數據可以有別名,這樣一個變量可能會指向另一個其他名字的變量。上面第二行代碼使STDOUT指向MYOUT變量。所以執行print操作時的默認輸出對象也就成為了我們創建的文件句柄。

  Perl文件操作五:同時向兩個文件句柄執行寫操作 

  1. useIO::Tee;$tee=IO::Tee->new(">>debuglog.txt",\*STDOUT);  
  2. print$tee"anerrorocurredon".scalar(localtime)."\n";  
  3.  

   運行結果:anerrorocurredonFriFeb2321:44:202001代碼討論:如果,由于種種原因你想要同時向兩個位置寫入同一個字符串,這和UNIX下的tee工具的用途一樣。即使你不是工作在Unix平臺上,Perl也通過Tee模塊為你提供這個功能。Tee模塊可以在CPAN下載,你應該把它安裝到Perl的IO庫文件夾中。Tee模塊以OOP方式編寫,所以使用它之前你應該首先使用它的new方法來創建一個Tee對象,整個過程需要兩個參數,每個參數既可以是代表文件句柄的字符串,也可以是一個對已打開的文件句柄的引用。在上面的例子中,我們用一個字符串來代表一個以附加模式打開的文件句柄,它指向名為debuglog.txt的文件,另一個參數是系統內置的文件句柄STDOUT,整個句柄是系統自動創建的,print函數默認情況對它進行操作。為了得到一個文件句柄的引用我們需要對一個typeglob類型的數據使用反斜杠。Typeglob可以代表任何已命名的某個變量,不論它是數組,散列還是標量等。使用*很有必要,因為文件句柄自己沒有前綴符號。new操作符返回Tee類的一個實例對象,然后我們把整個實例賦給$tee標量。現在,無論什么時候我們向$tee進行寫入操作,我們都同時向兩個位置進行寫操作。

  Perl文件操作六:更多文件操作--從一個文件的完全路徑中找出它的名字 

  1. useFile::Basename; $path="/docs/sitecircus.com/html/tricks/trick.of.the.week.html";  
  2. $basenamebasename=basename($path,".html");  
  3. print$basename;  

   運行結果:trick.of.the.week代碼討論:好了,成功了。問題是要找出文件的名字,要不帶任何路徑前綴,不帶任何擴展名。File::Basename模塊可以使這很容易實現,我們只需要把文件的完全路徑還有要剔除的擴展名傳給它。上面的path變量是文件的完全路徑,注意文件分隔符是/,這個字符很特殊,因為它是操作系統的保留字符。這里你不能在文件名里使用系統的分隔符。你應該知道當今流行的操作系統都使用自己獨特的文件分隔符:Unix使用/,Windows使用\,Macintosh使用:(順便說一下,在Windows上的Perl腳本中,你既可以使用\也可以使用/作為文件分隔符,Perl的解釋器能理解你的意思)。File::Basename,當然,能正確在完全路徑中找到文件名,不論時在什么系統下。

  Perl文件操作七:改變文件的所有者   

  1. ($uid,$gid)=(getpwnam($username))[2,3]  
  2.   ordie"$usernotinpasswdfile";  
  3.   chown($uid,$gid,$file)  
  4.   orwarn"couldn'tchown$file."; 

   運行結果:無輸出代碼討論:有的時候,你可能知道一個用戶名,而你想用這個用戶名做些事,比如改變一個文件的所有者。但是不幸的是,Perl的chown命令不能接受用戶名作為參數,但是可以接受一對數字:userid和groupid。雖然有這些不便之處,Perl并沒有讓我們陷入困境,我們可以把用戶名作為getpwnam函數的參數,獲得一個數組,里面包含了用戶名對應的userid和groupid,分別對應著數組里的第二和第三個元素。

【編輯推薦】

  1. Perl文件讀寫方法詳解 
  2. Perl文件句柄概念詳解
  3. 解析Perl文件系統應用中函數的語法
  4. Perl目錄句柄基本操作解析
  5. 深入學習Perl文件系統用法

 

責任編輯:佚名 來源: csdn.net
相關推薦

2011-07-05 14:19:02

云備份云計算

2020-09-01 07:22:04

網絡戰武器系統網絡安全

2023-02-21 14:55:40

React開發技巧

2013-04-22 11:13:06

程序員編程誤區

2021-11-30 06:31:06

勒索軟件攻擊網絡安全

2010-03-29 09:03:44

Windows Pho

2017-09-04 18:02:58

應用程序APP移動設備

2018-02-28 10:11:22

UPS電源預防

2024-06-12 11:47:38

2022-07-04 09:07:23

技術架構管理

2009-12-01 14:35:06

Linux忠告

2018-09-10 06:00:12

2018-04-11 14:13:29

物聯網信息技術互聯網

2012-08-06 10:34:26

JavaScript框架

2020-12-22 09:55:55

IT首席信息官CIO

2010-08-09 14:37:00

認證證書

2022-05-23 08:09:42

物聯網IOT

2020-12-18 10:35:27

IT技術領導者

2015-03-20 15:34:35

戴爾云計算DELL

2012-08-06 10:51:40

JavaScript
點贊
收藏

51CTO技術棧公眾號

天堂电影一区| 天堂av手机版| 黄色成人91| 精品视频www| 五月婷婷丁香综合网| 午夜羞羞小视频在线观看| 成人黄色777网| 国产精品天天狠天天看| 久久免费播放视频| 精品亚洲成人| 337p日本欧洲亚洲大胆色噜噜| 亚洲中文字幕无码不卡电影| a视频在线播放| 久久久久久久久久久久久女国产乱| 91精品视频免费| 精品人妻无码一区二区性色| 亚洲男女av一区二区| 亚洲欧美日韩高清| 91免费视频污| 成人国产精品入口免费视频| 夜夜亚洲天天久久| 水蜜桃亚洲精品| 黄色小视频免费在线观看| 日日骚欧美日韩| 98精品在线视频| 亚洲波多野结衣| 女人丝袜激情亚洲| 精品国产一区二区三区忘忧草 | 欧美日韩国产在线观看| 国产欧美精品aaaaaa片| 老司机精品影院| 国产日韩欧美电影| 久久这里精品国产99丫e6| xxxx18国产| 久久99精品视频| 国产精品久久久久av| 日韩av在线播放观看| 欧美久色视频| 久久精品国产久精国产思思| 国产精品久久免费观看| 国产91久久精品一区二区| 日韩成人黄色av| 国产女主播在线播放| 精品国产欧美| 日韩三级在线免费观看| 在线免费黄色网| 国产精品字幕| 日本高清不卡在线观看| 国产成人亚洲精品无码h在线| jizzjizz中国精品麻豆| 亚洲综合一区在线| 免费视频爱爱太爽了| 4438x成人网全国最大| 中文字幕一区二区三区不卡| 一区二区三区四区视频在线| 伊人免费在线| 国产精品麻豆视频| 正在播放久久| 成人在线影视| 一区二区三区蜜桃| 精品一区二区三区无码视频| 国产探花视频在线观看| 亚洲va中文字幕| 无罩大乳的熟妇正在播放| 日韩欧美精品一区二区三区| 狠狠爱在线视频一区| 国产成人精品无码播放| 国产成人毛片| 91麻豆精品91久久久久久清纯| 久久久精品视频国产| 中文字幕一区日韩精品| 亚洲国产毛片完整版| 亚洲国产无码精品| 欧美色婷婷久久99精品红桃| 日韩亚洲第一页| 欧美精品videos极品| 在线欧美福利| 日本免费久久高清视频| 伊人网站在线观看| 国产精品亚洲а∨天堂免在线| 不卡视频一区| 九一国产在线| 亚洲欧美综合色| 日韩精品一区二区免费| 91久久国产综合久久91猫猫| 欧美少妇一区二区| 宇都宫紫苑在线播放| 日韩有码av| 久久久精品中文字幕| 亚洲一区二区91| 免费在线观看成人| 国产精品一 二 三| 国产在线观看黄| 亚洲卡通动漫在线| 欧洲av无码放荡人妇网站| a成人v在线| 亚洲成人精品视频在线观看| 欧美亚洲色综久久精品国产| 欧美久色视频| 国产精品视频26uuu| 成人av一区二区三区在线观看| 26uuu色噜噜精品一区二区| 一区高清视频| 夜鲁夜鲁夜鲁视频在线播放| 69p69国产精品| 97伦伦午夜电影理伦片| 欧美一区二区三区另类| 国产精品成人av性教育| 女人18毛片水真多18精品| 欧美韩日一区二区三区四区| 777av视频| 一区二区三区| 亚洲欧美第一页| 久久亚洲成人av| 蜜臀va亚洲va欧美va天堂| 精品国产二区在线| 国产精品剧情一区二区在线观看| 色婷婷综合久久久| 稀缺小u女呦精品呦| 91青青国产在线观看精品| 2019中文在线观看| www.四虎在线观看| 中文字幕一区二区三| 日韩av播放器| 欧美黄色影院| 欧美—级高清免费播放| 一区二区 亚洲| 国产日产亚洲精品系列| 91精品91久久久中77777老牛| 欧美激情精品| 久久天天躁夜夜躁狠狠躁2022| 日本成人一级片| 2023国产精品视频| 欧美精品自拍视频| 成人偷拍自拍| 欧美国产日韩精品| 99在线精品视频免费观看20| 亚洲欧洲成人自拍| 亚洲综合欧美在线| 精品国产乱码久久久久久果冻传媒 | 精品91自产拍在线观看一区| 美女的奶胸大爽爽大片| 国产美女精品人人做人人爽| 中文字幕免费在线不卡| 激情欧美一区二区三区黑长吊| 在线日韩日本国产亚洲| 国产精品免费无遮挡无码永久视频| 91美女在线观看| 欧美亚洲国产成人| 亚洲人成精品久久久| 日本中文字幕久久看| 你懂的在线看| 在线观看www91| 中文字幕精品亚洲| 精东粉嫩av免费一区二区三区| 亚洲制服中文| www 久久久| 久久777国产线看观看精品| www.午夜激情| 婷婷夜色潮精品综合在线| 91九色蝌蚪porny| av不卡免费看| 欧美一进一出视频| 国产91欧美| 久久五月情影视| 二区三区在线视频| 欧美三级欧美成人高清www| 99久久人妻无码精品系列| 久久最新视频| 欧美 日韩 国产 在线观看| 韩国三级大全久久网站| 国内成人精品一区| 国内av一区二区三区| 欧美人xxxx| 免费一级全黄少妇性色生活片| 成人丝袜18视频在线观看| 亚洲色成人一区二区三区小说| 欧洲杯足球赛直播| 91在线免费看网站| 九色porny视频在线观看| 亚洲免费视频观看| 国产精品伦理一区| 亚洲国产日韩一级| 少妇愉情理伦三级| 成人中文字幕在线| 国产欧美在线一区| 性欧美69xoxoxoxo| 精品久久中出| 青青青国产精品| 国产综合在线视频| wwwww在线观看免费视频| 日韩欧美久久一区| 亚洲 欧美 中文字幕| 综合激情成人伊人| 91精品国产自产| 极品美女销魂一区二区三区免费| 97视频在线免费| 欧美www视频在线观看| 国产日韩欧美一区二区| 色诱色偷偷久久综合| 国内久久久精品| 亚洲精品承认| 精品在线小视频| 国产白浆在线观看| 欧洲中文字幕精品| 日韩乱码在线观看| 18涩涩午夜精品.www| 午夜理伦三级做爰电影| 国产精品一区二区在线观看不卡| 国产精品亚洲a| 欧美视频亚洲视频| 亚洲视频欧美在线| 无码少妇一区二区三区| 粉嫩高清一区二区三区精品视频 | 最近中文字幕在线mv视频在线 | 欧美久久久久免费| 久久久精品福利| 亚洲午夜免费福利视频| 永久免费看片直接| 国产精品三级av在线播放| 中文字幕一区二区人妻电影丶| 国产在线精品不卡| 久久久久久久片| 国产欧美另类| 性高湖久久久久久久久aaaaa| 中文字幕日韩一区二区不卡 | 超碰97在线免费观看| 亚洲国产成人在线播放| 国产成人久久精品77777综合| 欧美亚洲动漫精品| 国产精品suv一区| 亚洲成人免费在线观看| 精品一区在线视频| 一区二区三区精品久久久| 久久国产美女视频| 亚洲视频资源在线| 999福利视频| 国产精品免费久久| 美国黄色特级片| 国产欧美1区2区3区| 久久av无码精品人妻系列试探| www.一区二区| 催眠调教后宫乱淫校园| 国产成人综合在线播放| 亚洲精品无码久久久久久久| 国产精品亚洲一区二区三区妖精 | 99久久久国产精品| 国产精久久久久| 丁香婷婷深情五月亚洲| 韩国av中国字幕| 不卡的av电影| 中文字幕一区二区三区乱码不卡| 高清不卡在线观看| 精品1卡二卡三卡四卡老狼| 成人av在线观| www.男人天堂| 99精品一区二区三区| 久久亚洲AV成人无码国产野外| 91丨九色丨尤物| 女~淫辱の触手3d动漫| 久久精品男人天堂av| 特黄一区二区三区| 亚洲人成网站色在线观看 | 亚洲成a人片在线不卡一二三区| 亚洲国产精品成人无久久精品| 亚洲大片在线观看| 久久亚洲天堂网| 欧美午夜一区二区三区| 亚洲中文一区二区三区| 3d动漫精品啪啪| 粉嫩av一区二区夜夜嗨| 亚洲欧美日韩国产中文专区| 番号集在线观看| 日韩一区二区精品视频| 最新国产露脸在线观看| 国模私拍一区二区三区| 在线观看精品| 成人xvideos免费视频| 这里视频有精品| 久久久久久国产精品mv| 欧美综合在线视频观看 | 在线观看h网| 91精品国产乱码久久久久久久久| 成人软件在线观看| 91在线中文字幕| 日韩精品社区| 最新欧美日韩亚洲| 亚洲精品1区2区| 亚洲综合色在线观看| 国产激情精品久久久第一区二区 | 欧美在线视频一区| 欧洲精品久久久久毛片完整版| 国产女主播一区二区| 欧美一级精品| 97超碰人人澡| 美女网站色91| 国产婷婷在线观看| 国产精品久久久久久久久免费桃花| 国产一级二级毛片| 91黄色免费观看| xxxx18国产| 中文字幕日韩精品有码视频| www.综合| 亚洲free性xxxx护士白浆| 亚洲肉体裸体xxxx137| 超级碰在线观看| 日韩主播视频在线| 无码av免费精品一区二区三区| 欧美国产一区在线| 日韩精品乱码久久久久久| 678五月天丁香亚洲综合网| 韩国中文免费在线视频| 91精品国产91久久久久久久久| 高清久久一区| 日韩片电影在线免费观看| 日韩视频精品在线观看| 成人性生交视频免费观看| 国产亚洲一区二区三区四区| 日韩在线观看第一页| 日韩一卡二卡三卡四卡| av电影在线网| 国产精品久久久久久久久久99| 欧美偷窥清纯综合图区| 国产精品日韩三级| 精品一区二区免费视频| 中文天堂资源在线| 欧美性猛交xxxx| 日本美女一级视频| 欧美激情综合亚洲一二区| 国产一区二区三区亚洲综合| 亚洲国产欧美日韩| 日韩福利电影在线| 亚洲最大成人网站| 黄色精品在线看| 男人天堂手机在线观看| 欧美国产日韩一区| 久久久久久爱| 国产精品久久久影院| 国产尤物一区二区| 日本免费网站视频| 欧美人牲a欧美精品| 日本中文字幕在线观看| 国产精品视频自在线| 日韩电影二区| 色播五月激情五月| 国产精品对白交换视频| 国产精品热久久| 久久黄色av网站| 国产95亚洲| 国内外成人激情免费视频| 国产麻豆精品在线观看| 午夜国产福利一区二区| 欧美大肚乱孕交hd孕妇| 色呦呦在线视频| 国产精品制服诱惑| 性8sex亚洲区入口| 男生草女生视频| 欧美性色欧美a在线播放| 午夜在线视频| 91亚洲精品视频| 欧美激情一级片一区二区| 日本精品一二三| 精品日本高清在线播放 | 欧美成人剧情片在线观看| 欧美不卡在线观看| 超碰成人免费在线| 91视视频在线观看入口直接观看www | 国产精品久久久91| 久久精品国产www456c0m| aaa一级黄色片| 亚洲一区二区三区在线播放| 五月婷婷伊人网| 国产成人精品av在线| 国产精品7m凸凹视频分类| 国产精品19p| 丁香五六月婷婷久久激情| 国产对白叫床清晰在线播放| 成人在线精品视频| 亚洲欧洲综合| 国产sm调教视频| 欧美一区二区三区免费在线看| 99色在线观看| 日本不卡高清视频一区| 狠狠狠色丁香婷婷综合久久五月| 精品少妇theporn| 亚洲毛片在线免费观看| 欧美aaa级| 日本少妇高潮喷水视频| 国产精品毛片大码女人| 天堂av资源在线| 国产欧美中文字幕| 亚洲国产免费| 精品在线观看一区| 日韩国产精品一区| 欧美成人xxxx| 欧美黄色免费影院| 亚洲精品欧美专区| 国产人成在线观看| 国产欧美日本在线| 麻豆免费看一区二区三区|