亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Perl > 正文

Perl的經典用法

2019-11-17 05:51:14
字體:
來源:轉載
供稿:網友
用Open() 函數打開文件

打開文件的常用方法是:

open(FH, "< $filename")

 or die "Couldn't open $filename for reading: $!";


open() 函數通常帶有兩個參數,第一個為文件句柄,用于指向打開的文件,第二個參數是文件名及模式(文件的打開模式)的混合體,假如文件被成功打開,open()函數返回true,否則為false。我們用“or”來測試該條件。

上述代碼中的模式由小于字符(<)來表示。假如文件不存在,open()將返回false。此時,你可以讀文件句柄,但不可以寫。

大于字符表示寫。假如文件不存在,就會被創建。假如文件存在,文件被清除,以前的數據將會丟失。你可以寫入文件句柄,但不可以讀入。

# 假如文件不存在,就創建它

open(FH, "> $filename")

 or die "Couldn't open $filename for writing: $!";


假如文件不存在,添加模式(用兩個大于符號表示)可以用來創建新文件,假如文件存在,該模式并不會清除原來的數據。

同“<”或“讀”模式一樣,你只能對文件句柄進行寫操作。 (所以的寫入內容都添加到文件尾)。企圖進行讀操作,會產生運行錯誤。

open(FH, ">> $filename")

 or die "Couldn't open $filename for appending: $!";


通過“+<”模式,你可以既可以讀文件,又可以寫文件。你可以通過tell() 函數在文件內部移動,通過seek()函數進行定位。假如文件不存在,就會被創建。假如文件已經存在,原來的數據不會被清除。

假如你打算清除原來的文件內容,或者自己調用truncate() 函數,或者使用“+>”模式。

open(FH, "+> $filename")

 or die "Couldn't open $filename for reading and writing: $!";


注重“+<”和“+>”的區別,兩者都可以可讀可寫。前者為非破壞性寫,后者為破壞性寫。

錯誤

錯誤是如何出現的?很多地方都會出現錯誤:如目錄不存在,文件不可寫入,你的程序丟失了文件句柄等等。

你應該檢查系統調用的結果 (如open() 和sysopen()),看看是否調用成功。

為了幫助用戶查錯,通常使用“or die()”,你應記住這些用法。首先,應寫出系統調用失敗(“open”)的信息。其次,應寫出文件名的信息,以便修正錯誤時更輕易地定位。第三,要寫出打開文件的方式, (“for writing,”“for appending”)。第四,輸出操作系統的出錯信息(包含在$!中)。這樣,一旦出現文件不能打開的問題,使用你的程序的用戶會大體上知道為什么不能打開。有時,我們把第一個和第三個合并在一起:

or die "unable to append to $filename: $!";


假如在open() 和出錯信息中都寫了文件的全名,你會冒改變了open() 的風險,使得出錯信息不合時宜或不正確。

# 下面會出現虛假的出錯信息

open(FH, "</var/run/file.pid")

 or die "Can't open /var/log/file.pod for writing : $!";


用 Sysopen()進行更多的控制

為了更好的控制文件的打開方式,可以使用 sysopen() 函數:

use Fcntl;

sysopen(FH, $filename, O_RDWR|O_CREAT, 0666)

  or die "Can't open $filename for reading/writing/creating : $!";


函數 sysopen() 帶有四個參數,第一個是同open()函數類似的文件句柄參數,第二個參數是不帶模式信息的文件名,第三個參數是模式參數,由Fcntl 模塊提供的邏輯OR運算組合起來的常數構成,第四個參數(可選),為八進制屬性值(0666表示數據文件, 0777表示程序)。假如文件可以被打開,sysopen() 返回true,假如打開失敗,則返回false。

不同于open()函數,sysopen()不提供模式說明的簡寫方式,而是把一些常數組合起來,而且,每個模式常數有唯一的含義,只有通過邏輯OR運算才能將它們組合起來,你可以設置多個行為的組合。

O_RDONLYRead-only

O_WRONLY   Write-only

O_RDWR Reading and writing

O_APPEND Writes go to the end of the file

O_TRUNC Truncate the file if it existed

O_CREAT Create the file if it didn't exist

O_EXCLError if the file already existed (used with O_CREAT)


當你需要小心行事的時候,就使用sysopen() 函數,例如,假如你打算添加內容到文件中,假如文件不存在,不創建新文件,你可以這樣寫:

sysopen(LOG, "/var/log/my
or die "Can't open /var/log/myprog.log for appending: $!";
作 者:不詳


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

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线观看亚洲视频| 国产欧美精品一区二区三区介绍| 伊人青青综合网站| 久久久www成人免费精品| 国产精品爽爽爽| 日韩欧美主播在线| 日韩av综合中文字幕| 夜夜狂射影院欧美极品| 欧美怡春院一区二区三区| 亚洲天天在线日亚洲洲精| 日本精品va在线观看| 国产精品美女主播在线观看纯欲| 国内精品国产三级国产在线专| 国产精品欧美一区二区三区奶水| 亚洲第一二三四五区| 国产剧情久久久久久| 神马国产精品影院av| 欧美日韩激情网| 国产精品久久久久久久久久免费| 国产成人精品综合| 欧美视频在线免费看| 欧美专区在线视频| 2019国产精品自在线拍国产不卡| 亚洲欧美日韩精品久久| 国产精品自拍偷拍视频| 国产美女久久精品香蕉69| 日韩国产欧美精品一区二区三区| 国产日产欧美a一级在线| 欧美激情综合亚洲一二区| 欧美性生交大片免费| 日韩av成人在线观看| 欧美激情视频在线观看| 中文字幕亚洲一区二区三区五十路| 久久久亚洲福利精品午夜| www亚洲精品| 91免费看片在线| 日韩精品高清在线观看| 亚洲一区二区福利| 国产精品久久久久久影视| 久久久精品久久| 6080yy精品一区二区三区| 91色在线观看| www.久久久久久.com| 亚洲第一精品自拍| 26uuu另类亚洲欧美日本一| 92裸体在线视频网站| 精品高清美女精品国产区| 亚洲自拍av在线| 亚洲精品福利免费在线观看| 日本一欧美一欧美一亚洲视频| 欧美国产日韩中文字幕在线| 欧美成人一区二区三区电影| 亚洲乱亚洲乱妇无码| 成人国产在线激情| 亚洲精品一区久久久久久| 久久久精品999| 久久精品青青大伊人av| 欧美日韩中文字幕日韩欧美| 欧美日韩国产精品| 国产精品福利在线观看网址| 日韩中文字幕免费视频| 亚洲国产日韩欧美综合久久| 国产精品h在线观看| 精品国产电影一区| 日韩最新免费不卡| 欧美成人一区二区三区电影| 91精品视频播放| 午夜精品久久久久久99热| 国产综合在线观看视频| 奇米影视亚洲狠狠色| 久久精品免费播放| 疯狂做受xxxx欧美肥白少妇| 亚洲国产精品一区二区三区| 亚洲图片在区色| 亚洲精品乱码久久久久久金桔影视| 亚洲精品自在久久| 亚洲欧美另类在线观看| 日韩av电影免费观看高清| 欧美成年人在线观看| 欧美在线视频网站| 国产精品日本精品| 国产精品国内视频| 九九热这里只有精品免费看| 国产免费久久av| 亚洲精品720p| 欧美另类69精品久久久久9999| 91欧美日韩一区| 国产区亚洲区欧美区| 久久久电影免费观看完整版| 亚洲人成绝费网站色www| 亚洲精品视频在线观看视频| 91在线视频免费| 亚洲qvod图片区电影| 欧美亚洲成人xxx| 国内精品久久久| 国产亚洲欧洲高清一区| 亚洲一级免费视频| 精品久久久av| 国产亚洲视频在线观看| 欧美日韩亚洲视频| 国产精品久久久久国产a级| 一区二区福利视频| 91理论片午午论夜理片久久| 国产精品入口福利| 久久五月情影视| 亚洲第一国产精品| 精品视频久久久久久| 国产精品99久久久久久白浆小说| 亚洲国产精品va在线看黑人动漫| 久久国产精品久久国产精品| 国产噜噜噜噜久久久久久久久| 国产精品白嫩初高中害羞小美女| 日韩av在线免费观看| 欧美成人精品在线播放| 久久中文字幕在线| 日韩av电影手机在线观看| 日韩在线视频线视频免费网站| 91精品视频在线免费观看| 日韩欧美a级成人黄色| 91久久久久久久| 夜夜嗨av一区二区三区四区| 亚洲国产成人av在线| 日韩av影视综合网| 成人久久久久爱| 亚洲一区美女视频在线观看免费| 91精品91久久久久久| 国产精品久久久久久久久久99| 亚洲成色777777在线观看影院| 国产精品久久久久久久电影| 成人做爰www免费看视频网站| 97国产精品人人爽人人做| 久久精品亚洲94久久精品| 色综合影院在线| 啊v视频在线一区二区三区| 中文字幕精品国产| 精品国产一区二区三区久久久狼| 一区二区三区四区在线观看视频| 国产精品久久国产精品99gif| 欧美日韩中国免费专区在线看| 精品久久久久久久久国产字幕| 中文综合在线观看| 日韩精品中文字| 日韩国产欧美区| 免费97视频在线精品国自产拍| 国产精品一区二区三区免费视频| 狠狠色狠色综合曰曰| 国产精品三级美女白浆呻吟| 欧美成人激情在线| 国产视频精品免费播放| 亚洲精品国精品久久99热一| 97色在线视频观看| 国产精品久久久久9999| 中文字幕欧美在线| 欧美成人精品在线观看| 亚洲国产另类久久精品| 欧美最猛性xxxxx(亚洲精品)| 久久高清视频免费| 久久久久久这里只有精品| 亚洲天堂免费观看| 久久精品色欧美aⅴ一区二区| 91精品91久久久久久| 九九热这里只有在线精品视| 国产盗摄xxxx视频xxx69| 黑人巨大精品欧美一区二区|