国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Perl > 正文

Perl小技巧:文件操作

2019-11-18 17:22:48
字體:
來源:轉載
供稿:網友
opendirDIR,$path;@arr1=readdirDIR;@arr2=grep{-T"$path$_"}@arr1;#textfilesonly@arr3=grep{!-d"$path$_"}@arr1;#nodirectories@arr4=grep{-s"$path$_"<1024}@arr1;#lessthan1K代碼解釋:假如被測試的目錄項是一個文本文件,那么-T文件操作符就會返回真。其實針對目錄項的測試操作還有很多。(注:文件和目錄在系統中都是以目錄項的形式來管理的,所以要區別一個目錄項指向的是一個文件還是一個目錄需要相應的操作符)。注意上面的readdir函數返回指定目錄下的所有目錄項。因為在grep函數中對目錄項的測試需要文件的完全路徑,所以我們把$PATH(存儲了目錄項的部分路徑)和$_(存儲了目錄項的名字)中的內容聯合起來得到文件的完全路徑*對目錄進行遞歸搜索*
useFile::Find;find(/&handleFind,'imac:documents:code');subhandleFind{my$foundFile=$File::Find::name;運行結果:trick.of.the.week代碼討論:好了,成功了。問題是要找出文件的名字,要不帶任何路徑前綴,不帶任何擴展名。File::Basename模塊可以使這很容易實現,我們只需要把文件的完全路徑還有要剔除的擴展名傳給它。上面的path變量是文件的完全路徑,注意文件分隔符是/,這個字符很特殊,因為它是操作系統的保留字符。這里你不能在文件名里使用系統的分隔符。你應該知道當今流行的操作系統都使用自己獨特的文件分隔符:Unix使用/,Windows使用/,Macintosh使用:(順便說一下,在Windows上的Perl腳本中,你既可以使用/也可以使用/作為文件分隔符,Perl的解釋器能理解你的意思)。File::Basename,當然,能正確在完全路徑中找到文件名,不論時在什么系統下。*改變文件的所有者*
($uid,$gid)=(getpwnam($username))[2,3]ordie"$usernotinpasswdfile";chown($uid,$gid,$file)orwarn"couldn'tchown$file.";
運行結果:無輸出代碼討論:有的時候,你可能知道一個用戶名,而你想用這個用戶名做些事,比如改變一個文件的所有者。但是不幸的是,Perl的chown命令不能接受用戶名作為參數,但是可以接受一對數字:userid和groupid。雖然有這些不便之處,Perl并沒有讓我們陷入困境,我們可以把用戶名作為getpwnam函數的參數,獲得一個數組,里面包含了用戶名對應的userid和groupid,分別對應著數組里的第二和第三個元素。
上一篇:Perl簡單模塊指南

下一篇:Perl簡介

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 泸西县| 黎川县| 利川市| 措美县| 岳普湖县| 溧阳市| 南充市| 陕西省| 霞浦县| 龙陵县| 翼城县| 泾川县| 灵石县| 昭通市| 夹江县| 巧家县| 广安市| 霍州市| 巴楚县| 汉源县| 澳门| 沧州市| 双流县| 上虞市| 丹凤县| 辽阳县| 梅州市| 夏河县| 枣庄市| 南华县| 宕昌县| 南皮县| 敦化市| 卢氏县| 孟津县| 乡宁县| 阿巴嘎旗| 金川县| 积石山| 平原县| 天峨县|