精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

亚洲欧美日韩直播| 一本色道综合亚洲| 成人自拍偷拍| 国产免费一级视频| 欧美丰满老妇| 日韩午夜小视频| 成年网站在线免费观看| eeuss影院在线观看| 国产麻豆成人传媒免费观看| 午夜精品美女自拍福到在线| 青娱乐国产视频| 午夜电影一区| 欧美午夜片在线看| 久久国产精品网| 思思99re6国产在线播放| 国产成a人无v码亚洲福利| 日韩美女在线播放| 久草国产在线观看| 欧美色女视频| 亚洲精品理论电影| 毛毛毛毛毛毛毛片123| 中文在线资源| 亚洲国产aⅴ成人精品无吗| 青青草成人激情在线| 超碰免费在线97| 久久99热狠狠色一区二区| 2021国产精品视频| 久久久久久久久久91| 久久高清精品| 亚洲视频自拍偷拍| 波多野结衣有码| 日韩精品成人| 555夜色666亚洲国产免| av免费中文字幕| a级片在线免费观看| 亚洲精品中文在线观看| 亚欧精品在线| 国产一级在线| 久久亚区不卡日本| 精品久久久久久乱码天堂| www.97av| 国产寡妇亲子伦一区二区| 成人欧美一区二区三区在线 | 欧美破处大片在线视频| 日韩一区视频在线| 精品手机在线视频| 精品国产乱码| 国产一区二区激情| 国产精品密蕾丝袜| 久久不见久久见中文字幕免费| 亚洲国产欧美一区二区丝袜黑人| 国产人成视频在线观看| 99亚洲乱人伦aⅴ精品| 日韩欧美美女一区二区三区| 伊人成人免费视频| 蜜桃在线一区| 日韩欧美色综合网站| 欧美激情第四页| 午夜免费欧美电影| 亚洲高清一二三区| 中文乱码人妻一区二区三区视频| 果冻天美麻豆一区二区国产| 亚洲国产精品女人久久久| 久久人妻少妇嫩草av无码专区| 群体交乱之放荡娇妻一区二区| 日韩精品www| 好吊视频在线观看| 成人午夜av| 久久精品国产亚洲一区二区| caoporn91| 亚洲国产国产亚洲一二三| 97国产精品久久| 国产性生活视频| 免费观看成人av| 亚洲一区二区三区毛片| 后进极品白嫩翘臀在线视频| 91在线精品一区二区三区| 欧美一级爱爱| 米奇精品一区二区三区| 尤物在线观看一区| 男女猛烈激情xx00免费视频| 日韩电影av| 欧美日韩国产综合久久| 国产成人精品综合久久久久99| 成人av激情人伦小说| 亚洲欧美在线看| 在线观看美女av| 亚洲国产高清一区二区三区| 国产精品久久久久久一区二区 | 国产精品亚洲专一区二区三区| 99久久精品久久久久久ai换脸| 三级无遮挡在线观看| 国产精品久线在线观看| 久久精品xxx| 精品国模一区二区三区| 欧美一区二区性放荡片| 国产ts丝袜人妖系列视频| 91欧美日韩| 国内伊人久久久久久网站视频 | 天堂社区 天堂综合网 天堂资源最新版 | 欧美96一区二区免费视频| 96pao国产成视频永久免费| 人妻精品一区一区三区蜜桃91| 国产欧美一区二区精品性色| 在线视频福利一区| 五月天国产在线| 3d成人h动漫网站入口| 日韩网站在线播放| 欧美99久久| 国产日韩综合一区二区性色av| 四虎免费在线观看| 亚洲精品第1页| 免费看污污网站| 精品国产影院| 欧美精品性视频| 国产精品午夜一区二区| 成人aa视频在线观看| 一区二区三区国| 成人免费网站视频| 精品国产乱码久久久久久浪潮| 天美传媒免费在线观看| 亚洲欧美日韩专区| 国产精品国产精品国产专区不卡| 久久黄色美女电影| 欧美在线观看18| 亚洲精品女人久久久| 欧美精品午夜| 91久久久久久久久久久久久| 川上优的av在线一区二区| 红桃av永久久久| 波多野结衣办公室双飞| 91成人精品视频| 国产精品入口日韩视频大尺度| 日韩私人影院| 狠狠久久亚洲欧美专区| 91porn在线| 欧美特黄一区| 99国产在线观看| 男女免费观看在线爽爽爽视频| 在线成人午夜影院| 99热这里只有精品4| 青青草国产成人99久久| 欧美人xxxxx| 亚洲成人不卡| 中日韩美女免费视频网址在线观看| 日本中文字幕久久| 久久只精品国产| 99蜜桃臀久久久欧美精品网站| 欧美电影完整版在线观看| 国内精品国产三级国产在线专| 亚洲精品久久久久久久久久 | 免费成人进口网站| 亚洲国产伊人| 久久天天躁狠狠躁夜夜躁 | 狠狠色伊人亚洲综合成人| 亚洲日本欧美在线| 亚洲国产91视频| 欧美大尺度在线观看| 国产av精国产传媒| 亚洲综合999| 女同性恋一区二区三区| 日韩午夜av| 日韩精品一区二区三区色偷偷| 欧美日韩五区| 久久午夜a级毛片| 午夜精品久久久久久久第一页按摩| 一区二区三区中文字幕电影| 一级全黄裸体片| 国产精品一区亚洲| 色爱区成人综合网| 国产一区一区| 国语自产在线不卡| 精品推荐蜜桃传媒| 欧美军同video69gay| 麻豆91精品91久久久| 成人av网址在线观看| av观看免费在线| 欧美日韩第一| 97人人做人人人难人人做| 密臀av在线| 亚洲午夜未删减在线观看 | 精品无码av在线| 91网上在线视频| xxx国产在线观看| 国内精品久久久久国产盗摄免费观看完整版| 国产精品免费一区二区三区观看| 不卡福利视频| 日韩在线高清视频| 日韩永久免费视频| 欧美日韩免费在线视频| 久久久国产精华液| 国产午夜精品久久| 国产老头和老头xxxx×| 亚洲综合二区| 中文字幕超清在线免费观看| 激情小说亚洲色图| 国产日韩在线观看av| 不卡视频观看| 久久精品成人一区二区三区| 日本黄色一区二区三区| 欧美日韩一区不卡| 国产成人精品一区二三区| 中文字幕第一区综合| 人妻 丝袜美腿 中文字幕| 久久国产欧美| av久久久久久| 日韩免费视频| 欧美凹凸一区二区三区视频| 日韩欧美一级| 国产日韩欧美中文| 高潮一区二区| 久久久久国产精品免费网站| av中文字幕在线| 日韩极品精品视频免费观看| jizz中国少妇| 欧美精品乱码久久久久久按摩| 亚洲精品男人的天堂| 一区二区三区波多野结衣在线观看 | 精品一区二区三区中文字幕在线| 国产国产精品人在线视| 国精产品一区一区三区mba下载| 中文字幕日韩在线播放| 视频国产在线观看| 亚洲国模精品一区| 精品国自产在线观看| 欧美久久高跟鞋激| 黄色大全在线观看| 色综合天天综合网天天看片| 国产精品第九页| 一区二区三区欧美亚洲| 国产探花在线视频| 国产精品福利在线播放| 国产精品成人无码免费| 久久久久久黄色| 亚洲乱码国产乱码精品精大量 | 蜜桃av免费看| 99久久er热在这里只有精品66| xxxx国产视频| 国产精品一区在线| 1314成人网| 国产一区二区视频在线播放| 黄大色黄女片18第一次| 蜜桃久久精品一区二区| 网站一区二区三区| 蜜臀av一级做a爰片久久| 91av俱乐部| 青青青伊人色综合久久| 日本熟妇人妻中出| 日本少妇一区二区| 亚洲 欧美 另类人妖| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产福利一区视频| 日本亚洲最大的色成网站www| 人妻精品无码一区二区三区| 免费看的黄色欧美网站| 亚洲人成无码www久久久| 日韩经典中文字幕一区| 四季av一区二区三区| 韩国精品在线观看| 一二三区视频在线观看| 成人视屏免费看| 亚洲国产精品自拍视频| 久久久久久**毛片大全| 九一在线免费观看| 亚洲人精品一区| 日本一区二区三区免费视频| 欧美日韩亚洲天堂| 色老头一区二区| 3d动漫精品啪啪1区2区免费| 亚洲精品国产手机| 日韩久久免费电影| 午夜激情在线观看| 欧美黑人一级爽快片淫片高清| 爱啪啪综合导航| 国产噜噜噜噜噜久久久久久久久 | 色综合亚洲图丝熟| 国产成人久久精品| 国产精品美女久久久久人| 97人人模人人爽人人少妇| 爽爽窝窝午夜精品一区二区| 四虎影院一区二区三区 | 国产成人精品亚洲精品色欲| 亚洲第一网站男人都懂| 国产中文字幕在线视频| 精品久久久91| 在线观看的黄色| 成人网在线免费观看| 久草精品视频| 亚洲人一区二区| 一道本一区二区| 亚洲天堂网2018| 99久久婷婷国产综合精品电影| 国产精品情侣呻吟对白视频| 亚洲已满18点击进入久久| 国产精品久久久久久久久久精爆| 欧美一级夜夜爽| 国产女主播在线写真| 欧美国产亚洲视频| 国产情侣一区二区三区| 国产一区二区不卡视频在线观看| 日韩成人精品一区| 黄色免费视频大全| 国产一区999| 性高潮久久久久久久| 一区二区欧美视频| 伊人久久亚洲综合| 日韩电影在线观看中文字幕 | 男人天堂亚洲二区| 另类专区欧美制服同性| 一呦二呦三呦精品国产| 成人片在线免费看| 91影院成人| 熟女少妇精品一区二区| 成人av网在线| 欧美做爰啪啪xxxⅹ性| 欧美性大战久久久久久久| 天天操天天干天天操| 欧美精品日韩三级| 人人精品久久| 日本一区免费看| 国产日韩一区二区三区在线| 91精品人妻一区二区三区四区| 国产精品久久久久久久久免费相片| 可以免费在线观看的av| 欧美大片在线观看一区二区| 国产美女av在线| 成人精品在线视频| 国精一区二区| 国产aaa一级片| 久久免费美女视频| 99久在线精品99re8热| 欧美不卡视频一区| 最新黄网在线观看| 91久久精品日日躁夜夜躁国产| 精品99在线| 搡女人真爽免费午夜网站| 久久精品亚洲一区二区三区浴池| 日韩精品一区二区三| 精品乱人伦小说| 91jq激情在线观看| 国产精品综合久久久久久| 欧美精品播放| 国产裸体视频网站| 一区二区成人在线| 国产高清精品软件丝瓜软件| 久久精品一本久久99精品| 日韩护士脚交太爽了| 一区国产精品| 国内精品在线播放| 免费一级片视频| 亚洲国产精品悠悠久久琪琪| 国产传媒在线观看| 欧美日韩一区二区三区在线视频 | 欧美小视频在线| 欧美挠脚心网站| 国产成人精品免高潮在线观看 | 国产一区二区三区在线观看网站| 美脚恋feet久草欧美| 日本一区二区三区视频在线播放| 日本伊人色综合网| 天堂网中文在线观看| 欧美精品一二三| 亚洲综合影视| 含羞草久久爱69一区| 免费精品视频| 三级黄色片在线观看| 91精品国产综合久久福利软件| 免费影视亚洲| 欧美日韩无遮挡| 久久成人av少妇免费| 中文字幕在线2021| 亚洲第一国产精品| 午夜精品成人av| 中文字幕中文字幕一区三区| 国产成人午夜高潮毛片| 狠狠躁夜夜躁人人爽天天高潮| 精品在线欧美视频| 四虎影视国产精品| av在线播放亚洲| 欧美国产成人精品| 亚洲第一第二区| 青青草原一区二区| 99久久夜色精品国产亚洲狼 | 中文一区在线播放| 精品人妻一区二区三区换脸明星 | 不卡av日日日| 久久亚洲黄色| mm131国产精品| 精品日本高清在线播放| 91社区在线高清| 精品久久sese| 国产精品综合网| 亚洲成熟少妇视频在线观看| 色综合久久悠悠| 成人情趣视频网站| 波多野结衣视频播放| 欧美另类z0zxhd电影| 最新欧美色图| 欧美交换配乱吟粗大25p| 国产三区在线成人av|