a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > 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簡介

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

圖片精選

主站蜘蛛池模板: 成人黄色网 | 国产视频久久久久久 | 国产精品日产欧美久久久久 | 亚洲色中色| 国产精品.xx视频.xxtv | 青草视频在线观看视频 | 亚洲一区二区三区 | 国产精品99久久久久久动医院 | 日本一区二区三区视频免费看 | 日韩欧美手机在线 | 在线一区二区三区视频 | 久久久精品网站 | 亚洲色图第八页 | www.久久精品视频 | 一区二区影视 | 久久精品亚洲欧美日韩精品中文字幕 | 三级视频在线观看 | 成人aaaa | baoyu133. con永久免费视频 | 日夜夜精品 | 日本中文字幕一区二区有码在线 | 国产精品一区久久 | 国产免费av网站 | 蜜臀av性久久久久av蜜臀妖精 | 六月丁香在线观看 | xxxx爽日本hd18乱禁 | 国产精品视频网站 | 欧美3区 | 亚洲视频一区二区 | 午夜久久 | 一区二区三区不卡视频 | 久久人人爽人人爽 | 一区二区视频 | 亚洲日本成人 | 国产成人精品免费视频大全 | 天天综合91 | 欧美aaa大片 | 91资源在线| 日韩视频在线一区二区 | 美女张开腿视频网站免费 | 日本特黄特色aaa大片免费 |