亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? 第五章 文件讀寫(xiě) .htm

?? perl5教程
?? HTM
字號(hào):
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb_2312-80">
<title>Perl教程之 文件讀寫(xiě)</title>
<LINK rel="stylesheet" href="article.css" type="text/css">
</head>
<body>
<br>
<p align="center">第五章 文件讀寫(xiě) <br></p>

<p align="center"><a target="_blank" href="http://flamephoenix.126.com">by flamephoenix</a></p>

<a href="#一、打開(kāi)、關(guān)閉文件">一、打開(kāi)、關(guān)閉文件</a><br>
<a href="#二、讀文件"> 二、讀文件</a><br>
<a href="#三、寫(xiě)文件"> 三、寫(xiě)文件</a><br>
<a href="#四、判斷文件狀態(tài)"> 四、判斷文件狀態(tài)</a><br>
<a href="#五、命令行參數(shù)"> 五、命令行參數(shù)</a><br>
<a href="#六、打開(kāi)管道"> 六、打開(kāi)管道</a>
<br><br>
<a name="一、打開(kāi)、關(guān)閉文件">
一、打開(kāi)、關(guān)閉文件</a>
<br>
&nbsp;&nbsp;語(yǔ)法為open (filevar, filename),其中filevar為文件句柄,或者說(shuō)是程序中用來(lái)代表某文件的代號(hào),filename為文件名,其路徑可為相對(duì)路徑,亦可為絕對(duì)路徑。<br>
&nbsp;&nbsp;&nbsp;&nbsp;open(FILE1,&quot;file1&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp;open(FILE1,
&quot;/u/jqpublic/file1&quot;);<br>
&nbsp;&nbsp;打開(kāi)文件時(shí)必須決定訪問(wèn)模式,在PERL中有三種訪問(wèn)模式:讀、寫(xiě)和添加。后兩種模式的區(qū)別在于寫(xiě)模式將原文件覆蓋,原有內(nèi)容丟失,形式為:open(outfile,&quot;&gt;outfile&quot;);而添加模式則在原文件的末尾處繼續(xù)添加內(nèi)容,形式為:open(appendfile,
&quot;&gt;&gt;appendfile&quot;)。要注意的是,不能對(duì)文件同時(shí)進(jìn)行讀和寫(xiě)/添加操作。<br>
&nbsp;&nbsp;open的返回值用來(lái)確定打開(kāi)文件的操作是否成功,當(dāng)其成功時(shí)返回非零值,失敗時(shí)返回零,因此可以如下判斷:<br>
&nbsp;&nbsp;&nbsp;&nbsp;if (open(MYFILE, &quot;myfile&quot;)) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;# here's what to do if the file opened
successfully<br>
&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp;當(dāng)文件打開(kāi)失敗時(shí)結(jié)束程序:<br>
&nbsp;&nbsp;&nbsp;&nbsp;unless (open (MYFILE, &quot;file1&quot;))
{<br>
&nbsp;&nbsp;&nbsp;&nbsp;die (&quot;cannot open input file
file1\n&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp;亦可用邏輯或操作符表示如下:<br>
&nbsp;&nbsp;&nbsp;&nbsp;open (MYFILE, &quot;file1&quot;) || die
(&quot;Could not open file&quot;); <br>
&nbsp;&nbsp;當(dāng)文件操作完畢后,用close(MYFILE);
關(guān)閉文件。<br>
<a name="二、讀文件"> 二、讀文件
</a> <br>
&nbsp;&nbsp;語(yǔ)句$line = &lt;MYFILE&gt;;從文件中讀取一行數(shù)據(jù)存儲(chǔ)到簡(jiǎn)單變量$line中并把文件指針向后移動(dòng)一行。&lt;STDIN&gt;為標(biāo)準(zhǔn)輸入文件,通常為鍵盤(pán)輸入,不需要打開(kāi)。<br>
&nbsp;&nbsp;語(yǔ)句@array = &lt;MYFILE&gt;;把文件的全部?jī)?nèi)容讀入數(shù)組@array,文件的每一行(含回車(chē)符)為@array的一個(gè)元素。<br>
<a name="三、寫(xiě)文件"> 三、寫(xiě)文件</a>
<br>
&nbsp;&nbsp;形式為:<br>
&nbsp;&nbsp;&nbsp;&nbsp;open(OUTFILE, &quot;&gt;outfile&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp;print OUTFILE (&quot;Here is an output
line.\n&quot;);<br>
&nbsp;&nbsp;注:STDOUT、STDERR為標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤文件,通常為屏幕,且不需要打開(kāi)。<br>
<a name="四、判斷文件狀態(tài)"> 四、判斷文件狀態(tài)</a>
<br>
1、文件測(cè)試操作符<br>
&nbsp;&nbsp;語(yǔ)法為:-op expr,如:<br>
&nbsp;&nbsp;&nbsp;&nbsp;if (-e &quot;/path/file1&quot;) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;print STDERR (&quot;File file1
exists.\n&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp;}<br>
</p>

<p align="center"> 文件測(cè)試操作符 </p>
<div align="center"><center>

<table border="1" width="70%">
    <tr>
        <td valign="top" width="192"> <i>操作符</i></td>
        <td valign="top" width="384"> <i>描述</i></td>
    </tr>
    <tr>
        <td valign="top" width="192"> -b</td>
        <td valign="top" width="384"> 是否為塊設(shè)備</td>
    </tr>
    <tr>
        <td valign="top" width="192"> -c </td>
        <td valign="top" width="384"> 是否為字符設(shè)備
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -d </td>
        <td valign="top" width="384"> 是否為目錄
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -e </td>
        <td valign="top" width="384"> 是否存在
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -f </td>
        <td valign="top" width="384"> 是否為普通文件
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -g </td>
        <td valign="top" width="384"> 是否設(shè)置了setgid位
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -k </td>
        <td valign="top" width="384"> 是否設(shè)置了sticky位
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -l </td>
        <td valign="top" width="384"> 是否為符號(hào)鏈接
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -o </td>
        <td valign="top" width="384"> 是否擁有該文件
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -p </td>
        <td valign="top" width="384"> 是否為管道
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -r </td>
        <td valign="top" width="384"> 是否可讀
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -s </td>
        <td valign="top" width="384"> 是否非空
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -t </td>
        <td valign="top" width="384"> 是否表示終端
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -u </td>
        <td valign="top" width="384"> 是否設(shè)置了setuid位
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -w </td>
        <td valign="top" width="384"> 是否可寫(xiě)
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -x </td>
        <td valign="top" width="384"> 是否可執(zhí)行
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -z </td>
        <td valign="top" width="384"> 是否為空文件
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -A </td>
        <td valign="top" width="384"> 距上次訪問(wèn)多長(zhǎng)時(shí)間
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -B </td>
        <td valign="top" width="384"> 是否為二進(jìn)制文件
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -C </td>
        <td valign="top" width="384"> 距上次訪問(wèn)文件的inode多長(zhǎng)時(shí)間
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -M </td>
        <td valign="top" width="384"> 距上次修改多長(zhǎng)時(shí)間
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -O </td>
        <td valign="top" width="384"> 是否只為“真正的用戶(hù)”所擁有
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -R </td>
        <td valign="top" width="384"> 是否只有“真正的用戶(hù)”可讀
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -S </td>
        <td valign="top" width="384"> 是否為socket
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -T </td>
        <td valign="top" width="384"> 是否為文本文件
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -W </td>
        <td valign="top" width="384"> 是否只有&quot;真正的用戶(hù)&quot;可寫(xiě)
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -X </td>
        <td valign="top" width="384"> 是否只有&quot;真正的用戶(hù)&quot;可執(zhí)行
        </td>
    </tr>
    <tr>
        <td colspan="2"> 注:“真正的用戶(hù)”指登錄時(shí)指定的userid,與當(dāng)前進(jìn)程用戶(hù)ID相對(duì),命令suid可以改變有效用戶(hù)ID。</td>
    </tr>
</table>
</center></div>

<p> &nbsp;&nbsp;例:<br>
&nbsp;&nbsp;&nbsp;&nbsp;unless (open(INFILE, &quot;infile&quot;))
{<br>
&nbsp;&nbsp;&nbsp;&nbsp;die (&quot;Input file infile cannot be
opened.\n&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp;&nbsp;&nbsp;if (-e &quot;outfile&quot;) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;die (&quot;Output file outfile already
exists.\n&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp;&nbsp;&nbsp;unless (open(OUTFILE,
&quot;&gt;outfile&quot;)) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;die (&quot;Output file outfile cannot be
opened.\n&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp;等價(jià)于<br>
&nbsp;&nbsp;&nbsp;&nbsp;open(INFILE, &quot;infile&quot;)
&amp;&amp; !(-e &quot;outfile&quot;) &amp;&amp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;open(OUTFILE, &quot;&gt;outfile&quot;) ||
die(&quot;Cannot open files\n&quot;);<br>
<a name="五、命令行參數(shù)"> 五、命令行參數(shù)</a>
<br>
&nbsp;&nbsp;象C一樣,PERL也有存儲(chǔ)命令行參數(shù)的數(shù)組@ARGV,可以用來(lái)分別處理各個(gè)命令行參數(shù);與C不同的是,$ARGV[0]是第一個(gè)參數(shù),而不是程序名本身。<br>
&nbsp;&nbsp;&nbsp;&nbsp;$var = $ARGV[0]; # 第一個(gè)參數(shù)<br>
&nbsp;&nbsp;&nbsp;&nbsp;$numargs = @ARGV; # 參數(shù)的個(gè)數(shù)<br>
&nbsp;&nbsp;PERL中,&lt;&gt;操作符實(shí)際上是對(duì)數(shù)組@ARGV的隱含的引用,其工作原理為:<br>
1、當(dāng)PERL解釋器第一次看到&lt;&gt;時(shí),打開(kāi)以$ARGV[0]為文件名的文件;<br>
2、執(zhí)行動(dòng)作shift(@ARGV); 即把數(shù)組@ARGV的元素向前移動(dòng)一個(gè),其元素?cái)?shù)量即減少了一個(gè)。<br>
3、&lt;&gt;操作符讀取在第一步打開(kāi)的文件中的所有行。<br>
4、讀完后,解釋器回到第一步重復(fù)。<br>
&nbsp;&nbsp;例:<br>
&nbsp;&nbsp;&nbsp;&nbsp;@ARGV = (&quot;myfile1&quot;,
&quot;myfile2&quot;); #實(shí)際上由命令行參數(shù)賦值<br>
&nbsp;&nbsp;&nbsp;&nbsp;while ($line = &lt;&gt;) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;print ($line);<br>
&nbsp;&nbsp;&nbsp;&nbsp;} <br>
&nbsp;&nbsp;將把文件myfile1和myfile2的內(nèi)容打印出來(lái)。<br>
<a name="六、打開(kāi)管道"> 六、打開(kāi)管道</a>
<br>
&nbsp;&nbsp;用程序的形式也可以象命令行一樣打開(kāi)和使用管道(ex:ls
&gt; tempfile)。如語(yǔ)句open (MYPIPE, &quot;| cat &gt;hello&quot;);
打開(kāi)一個(gè)管道,發(fā)送到MYPIPE的輸出成為命令&quot;cat
&gt;hello&quot;的輸入。由于cat命令將顯示輸入文件的內(nèi)容,故該語(yǔ)句等價(jià)于open(MYPIPE,
&quot;&gt;hello&quot;); 用管道發(fā)送郵件如下:<br>
&nbsp;&nbsp;&nbsp;&nbsp;open (MESSAGE, &quot;| mail dave&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp;print MESSAGE (&quot;Hi, Dave! Your Perl
program sent this!\n&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp;close (MESSAGE);<br>
</p>
<p align="center"><a href="第四章 列表和數(shù)組變量 .htm">上一章</a> <a href="第六章 模式匹配.htm">下一章</a> <a href="index.htm">目錄</a></p>
<br>
</body>
</html>

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合激情另类小说区| 国产精品一级二级三级| 亚洲成人黄色小说| 亚洲欧美一区二区在线观看| 久久精品久久久精品美女| 1000精品久久久久久久久| 久久品道一品道久久精品| 日韩一区二区三区三四区视频在线观看 | 欧美精品久久天天躁| 欧美在线免费观看视频| 欧美天天综合网| 欧美日韩一区二区三区不卡| 欧美图区在线视频| 欧美一区二区三区系列电影| 欧美一三区三区四区免费在线看| 日韩一卡二卡三卡国产欧美| 精品福利一二区| 国产女主播在线一区二区| 国产精品欧美久久久久一区二区| 亚洲私人黄色宅男| 亚洲午夜精品久久久久久久久| 亚洲小说春色综合另类电影| 日韩av在线播放中文字幕| 狠狠色狠狠色合久久伊人| 国产成人在线免费观看| 色中色一区二区| 欧美精品xxxxbbbb| 久久久亚洲午夜电影| 中文字幕日韩欧美一区二区三区| 亚洲卡通欧美制服中文| 日韩av中文字幕一区二区| 国产成人自拍网| 在线观看日韩精品| 欧美大片在线观看一区| 中文字幕一区二区三区不卡| 亚洲一区二区三区四区在线免费观看 | 欧美成人欧美edvon| 国产欧美一区二区精品性色| 一区二区三区在线播| 男女视频一区二区| proumb性欧美在线观看| 欧美日本在线播放| 国产日韩欧美精品综合| 一区二区三区高清| 极品少妇xxxx精品少妇| 色婷婷久久久综合中文字幕| 欧美不卡在线视频| 亚洲精品成人少妇| 国产精品一区二区男女羞羞无遮挡| 91在线观看污| 日韩女同互慰一区二区| 亚洲精品视频在线| 国产综合久久久久久鬼色| 欧洲生活片亚洲生活在线观看| 日韩久久免费av| 亚洲精品国产精品乱码不99| 国产自产v一区二区三区c| 在线观看精品一区| 欧美激情一区二区三区在线| 亚洲国产cao| 成人黄页在线观看| 日韩免费性生活视频播放| 亚洲精品高清在线| 高清不卡一区二区在线| 欧美一区二区三区四区久久| 国产成人午夜电影网| 欧美日韩精品一区视频| 中文字幕亚洲精品在线观看| 久久99在线观看| 欧美色男人天堂| 日韩一区欧美一区| 国产白丝网站精品污在线入口| 91精品国产麻豆| 亚洲一区二区四区蜜桃| 成人精品亚洲人成在线| 欧美videos大乳护士334| 亚洲妇女屁股眼交7| 91在线视频官网| 中文字幕高清不卡| 国产很黄免费观看久久| 欧美videofree性高清杂交| 丝袜美腿高跟呻吟高潮一区| 色播五月激情综合网| 国产精品乱码人人做人人爱 | 欧美日韩视频在线一区二区| 亚洲婷婷在线视频| 成人av在线影院| 欧美极品少妇xxxxⅹ高跟鞋| 精品一区免费av| 日韩一二三四区| 欧美国产成人精品| 久久不见久久见免费视频7| 亚洲视频在线观看一区| 亚洲一区二区三区免费视频| 不卡的av在线播放| 国产精品毛片大码女人| 成人短视频下载| 国产精品伦一区二区三级视频| 国产剧情在线观看一区二区| 久久综合五月天婷婷伊人| 久久国产剧场电影| 久久众筹精品私拍模特| 国产一区二区美女| 久久久久久99久久久精品网站| 国产麻豆精品在线观看| 久久久久国产精品厨房| 国产+成+人+亚洲欧洲自线| 欧美国产日产图区| 成人97人人超碰人人99| 成人免费在线视频观看| 色av一区二区| 午夜久久福利影院| 欧美一区二区三区在线| 狠狠色狠狠色综合日日91app| 精品噜噜噜噜久久久久久久久试看| 久久精品国产**网站演员| 久久午夜羞羞影院免费观看| 国产激情精品久久久第一区二区| 国产拍揄自揄精品视频麻豆| 成人av电影在线播放| 亚洲日本va午夜在线影院| 欧美少妇一区二区| 久久成人久久爱| 中文字幕va一区二区三区| 色哟哟一区二区三区| 亚洲国产精品一区二区久久| 欧美精品高清视频| 国产在线精品一区在线观看麻豆| 久久久国产午夜精品| 色综合天天性综合| 亚洲成人av中文| 久久伊人中文字幕| 99国内精品久久| 日韩av二区在线播放| 久久免费看少妇高潮| 色哟哟在线观看一区二区三区| 五月婷婷久久丁香| 青青草97国产精品免费观看 | 欧美中文字幕一区二区三区 | 欧美日韩国产首页| 麻豆精品一区二区三区| 中文字幕精品一区| 欧美日韩国产首页| 丁香六月久久综合狠狠色| 亚洲一区二区综合| 26uuu另类欧美亚洲曰本| 99国产精品国产精品久久| 天堂久久一区二区三区| 亚洲国产精品成人综合色在线婷婷 | 99久久免费精品| 日韩精品一级中文字幕精品视频免费观看 | 丰满岳乱妇一区二区三区| 一区二区三区**美女毛片| 欧美va亚洲va香蕉在线| 91久久精品一区二区三区| 美女诱惑一区二区| 亚洲精品免费在线观看| 日韩欧美国产精品| 色欧美乱欧美15图片| 国产综合久久久久久鬼色| 亚洲线精品一区二区三区八戒| 国产亚洲精品精华液| 91精品国产综合久久小美女| proumb性欧美在线观看| 九九**精品视频免费播放| 亚洲激情图片小说视频| 国产欧美视频在线观看| 7777精品久久久大香线蕉| 91老师国产黑色丝袜在线| 韩国女主播成人在线| 午夜精品成人在线| 亚洲人成亚洲人成在线观看图片| 久久综合久久综合亚洲| 91麻豆精品国产91久久久久久| 成人深夜视频在线观看| 精品一区中文字幕| 丝袜诱惑制服诱惑色一区在线观看 | 韩国女主播成人在线观看| 亚欧色一区w666天堂| 亚洲精选视频在线| 国产精品久久久一本精品| 26uuu久久综合| 欧美一级免费大片| 欧美私人免费视频| 色噜噜狠狠色综合欧洲selulu| 福利一区福利二区| 国产一区999| 久草热8精品视频在线观看| 日韩av一级电影| 日日摸夜夜添夜夜添国产精品 | 国产传媒欧美日韩成人| 麻豆精品视频在线| 午夜不卡在线视频| 亚洲一二三区不卡| 亚洲永久精品国产| 亚洲欧美激情插| 亚洲精品乱码久久久久久日本蜜臀| 欧美韩日一区二区三区四区| 久久久不卡影院| 国产欧美精品一区二区色综合|