weidagang2046的專欄

          物格而后知致
          隨筆 - 8, 文章 - 409, 評論 - 101, 引用 - 0
          數據加載中……

          Perl文件及目錄操作

          大多數程序都不是孤立的,它們與它們的環境相互作用。很多的程序也需要通過文件操作實現數據的存貯和交換。?文件句柄(file?handle)是Perl程序中為程序和外部世界提供I/O連接的名稱。建議全部使用大寫字母以示與變量等的區別。特別地,也可以將STDIN/STDOUT/STDERR也認為?是Perl的文件句柄,分別代表標準輸入/標準輸出/標準錯誤輸出。?

          打開及關閉文件?

            Perl的文件操作與C語言極為相似。如:?

          open(FILENAME,"abc.txt");?

            該調用為讀文件打開,若為寫文件而打開,需在文件名前加上大于號:?

          open(FILENAME,">abc.txt");?

            若要追加至文件尾,可在文件名前加上兩個大于號:?

          open(FILENAME,">>abc.txt");?

            以上三種open()格式在成功時返回真,失敗時返回假。但程序中通常沒有提示,出錯時往往會被人們忽略。?通常當需要給出出錯提示時,可加入die()函數。例:?

          open(OUTFILE,">/tmp/outfile")||?
          die?"出錯,不能建立/tmp/outfile\n";?

            當只有open失敗時,才會執行die給出出錯提示。?

            對文件句柄的操作完成后,可以用close操作符關閉文件。如:?

          close(OUTFILE);?

          -x?文件測試?

            Perl的文件操作也可以先測試文件是否存在,是否可讀寫等。如:?

          $x="abc.txt";?
          if(-e?$x)?{?#abc.txt是否存在??
          #?存在操作?
          }?else?{?
          printf?"文件不存在。\n";?
          }?

          -e操作符測試文件或目錄是否存在。?

            以下為文件測試清單:?



          文件測試?測試操作符提供的信息?
          -r?文件或目錄可讀?
          -w?文件或目錄可寫?
          -x?文件或目錄執行?
          -o?文件或目錄歸用戶所有?
          -R?文件或目錄對真正用戶可讀?
          -W?文件或目錄對真正用戶可寫?
          -X?文件或目錄對真正用戶執行?
          -O?文件或目錄歸真正用戶所有?
          -e?文件或目錄存在?
          -z?文件存在且大小為0?
          -s?文件或目錄存在且不為0(返回字節數)?
          -f?文件為普通文件?
          -d?文件為目錄?
          -l?文件為符號鏈接?
          -p?文件為命名管道(FIFO)?
          -S?文件為一個套口(socket)?
          -b?文件為塊特殊文件?
          -c?文件為字符特殊文件?
          -t?打開tty控制臺的文件句柄?
          -u?文件或目錄是設置用戶ID號?
          -g?文件或目錄是設置用戶組ID號?
          -k?文件或目錄的sticky位置位?
          -T?文件是文本文件?
          -B?文件是二進制文件?
          -M?以天為單位的存在時間?
          -A?以天為單位訪問時間?
          -C?以天為單位同代碼更改時間?


          刪除文件?

            Perl的unlink()操作符可實現刪除文件。如:?

          unlink("abc.txt");?#刪除abc.txt?

          文件重命名?

            Perl的rename()操作符可實現文件重命名。如:?

          rename("abc","zmd")||die?"出錯,不能更名";?

            此時將abc更名為zmd,成功返回真,否則給出出錯提示。?

          目錄操作?

            Perl中處理目錄非常類似于處理文件。?

            打開目錄句柄:?

          opendir(ETC,"/etc")||die?"出錯,不能打開目錄";?

            關閉目錄句柄:?

          closedir(ETC);?

            創建目錄:?

          mkdir("zmd",0777)||die?"不能創建zmd目錄";?

            0777為內部權限格式。?

            刪除目錄:?

          rmdir("zmd")||die?"不能刪除zmd目錄"。

          posted on 2006-08-05 22:09 weidagang2046 閱讀(17687) 評論(1)  編輯  收藏 所屬分類: Perl

          評論

          # re: Perl文件及目錄操作  回復  更多評論   

          grrgrg
          2012-08-13 21:09 | ergregreg
          主站蜘蛛池模板: 伊金霍洛旗| 布尔津县| 尼勒克县| 桃园县| 漠河县| 罗田县| 蛟河市| 石景山区| 静宁县| 长海县| 漯河市| 措美县| 东光县| 郓城县| 奎屯市| 扎兰屯市| 卢湾区| 嘉定区| 曲麻莱县| 隆林| 瓮安县| 广元市| 德兴市| 萝北县| 疏勒县| 康定县| 兰西县| 五峰| 莱西市| 敦煌市| 盐城市| 昭通市| 庐江县| 平果县| 温泉县| 隆化县| 阿尔山市| 辽阳市| 莱芜市| 新化县| 揭西县|