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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? perl5.htm

?? perl入門
?? HTM
字號:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb_2312-80">
<title>Perl教程之 文件讀寫</title>
</head>
<body>
<br>
<p align="center">第五章 文件讀寫 <br></p>



<a href="#一、打開、關閉文件">一、打開、關閉文件</a><br>
<a href="#二、讀文件"> 二、讀文件</a><br>
<a href="#三、寫文件"> 三、寫文件</a><br>
<a href="#四、判斷文件狀態"> 四、判斷文件狀態</a><br>
<a href="#五、命令行參數"> 五、命令行參數</a><br>
<a href="#六、打開管道"> 六、打開管道</a>
<br><br>
<a name="一、打開、關閉文件">
一、打開、關閉文件</a>
<br>
&nbsp;&nbsp;語法為open (filevar, filename),其中filevar為文件句柄,或者說是程序中用來代表某文件的代號,filename為文件名,其路徑可為相對路徑,亦可為絕對路徑。<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;打開文件時必須決定訪問模式,在PERL中有三種訪問模式:讀、寫和添加。后兩種模式的區別在于寫模式將原文件覆蓋,原有內容丟失,形式為:open(outfile,&quot;&gt;outfile&quot;);而添加模式則在原文件的末尾處繼續添加內容,形式為:open(appendfile,
&quot;&gt;&gt;appendfile&quot;)。要注意的是,不能對文件同時進行讀和寫/添加操作。<br>
&nbsp;&nbsp;open的返回值用來確定打開文件的操作是否成功,當其成功時返回非零值,失敗時返回零,因此可以如下判斷:<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;當文件打開失敗時結束程序:<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;當文件操作完畢后,用close(MYFILE);
關閉文件。<br>
<a name="二、讀文件"> 二、讀文件
</a> <br>
&nbsp;&nbsp;語句$line = &lt;MYFILE&gt;;從文件中讀取一行數據存儲到簡單變量$line中并把文件指針向后移動一行。&lt;STDIN&gt;為標準輸入文件,通常為鍵盤輸入,不需要打開。<br>
&nbsp;&nbsp;語句@array = &lt;MYFILE&gt;;把文件的全部內容讀入數組@array,文件的每一行(含回車符)為@array的一個元素。<br>
<a name="三、寫文件"> 三、寫文件</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為標準輸出和標準錯誤文件,通常為屏幕,且不需要打開。<br>
<a name="四、判斷文件狀態"> 四、判斷文件狀態</a>
<br>
1、文件測試操作符<br>
&nbsp;&nbsp;語法為:-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"> 文件測試操作符 </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"> 是否為塊設備</td>
    </tr>
    <tr>
        <td valign="top" width="192"> -c </td>
        <td valign="top" width="384"> 是否為字符設備
        </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"> 是否設置了setgid位
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -k </td>
        <td valign="top" width="384"> 是否設置了sticky位
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -l </td>
        <td valign="top" width="384"> 是否為符號鏈接
        </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"> 是否設置了setuid位
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -w </td>
        <td valign="top" width="384"> 是否可寫
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -x </td>
        <td valign="top" width="384"> 是否可執行
        </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"> 距上次訪問多長時間
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -B </td>
        <td valign="top" width="384"> 是否為二進制文件
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -C </td>
        <td valign="top" width="384"> 距上次訪問文件的inode多長時間
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -M </td>
        <td valign="top" width="384"> 距上次修改多長時間
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -O </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"> 是否為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;真正的用戶&quot;可寫
        </td>
    </tr>
    <tr>
        <td valign="top" width="192"> -X </td>
        <td valign="top" width="384"> 是否只有&quot;真正的用戶&quot;可執行
        </td>
    </tr>
    <tr>
        <td colspan="2"> 注:“真正的用戶”指登錄時指定的userid,與當前進程用戶ID相對,命令suid可以改變有效用戶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;等價于<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="五、命令行參數"> 五、命令行參數</a>
<br>
&nbsp;&nbsp;象C一樣,PERL也有存儲命令行參數的數組@ARGV,可以用來分別處理各個命令行參數;與C不同的是,$ARGV[0]是第一個參數,而不是程序名本身。<br>
&nbsp;&nbsp;&nbsp;&nbsp;$var = $ARGV[0]; # 第一個參數<br>
&nbsp;&nbsp;&nbsp;&nbsp;$numargs = @ARGV; # 參數的個數<br>
&nbsp;&nbsp;PERL中,&lt;&gt;操作符實際上是對數組@ARGV的隱含的引用,其工作原理為:<br>
1、當PERL解釋器第一次看到&lt;&gt;時,打開以$ARGV[0]為文件名的文件;<br>
2、執行動作shift(@ARGV); 即把數組@ARGV的元素向前移動一個,其元素數量即減少了一個。<br>
3、&lt;&gt;操作符讀取在第一步打開的文件中的所有行。<br>
4、讀完后,解釋器回到第一步重復。<br>
&nbsp;&nbsp;例:<br>
&nbsp;&nbsp;&nbsp;&nbsp;@ARGV = (&quot;myfile1&quot;,
&quot;myfile2&quot;); #實際上由命令行參數賦值<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的內容打印出來。<br>
<a name="六、打開管道"> 六、打開管道</a>
<br>
&nbsp;&nbsp;用程序的形式也可以象命令行一樣打開和使用管道(ex:ls
&gt; tempfile)。如語句open (MYPIPE, &quot;| cat &gt;hello&quot;);
打開一個管道,發送到MYPIPE的輸出成為命令&quot;cat
&gt;hello&quot;的輸入。由于cat命令將顯示輸入文件的內容,故該語句等價于open(MYPIPE,
&quot;&gt;hello&quot;); 用管道發送郵件如下:<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="perl4.htm">上一章</a> <a href="perl6.htm">下一章</a> <a href="index.htm">目錄</a></p>
<br>
</body>
</html>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久国产精品午夜一区ai换脸| 国产精品乱码一区二三区小蝌蚪| 久久久久国产一区二区三区四区 | 一本大道久久a久久综合| 欧美一区在线视频| 一区二区三区四区不卡在线| 国产精品1024| 亚洲精品在线网站| 石原莉奈一区二区三区在线观看| 99久久99久久精品免费看蜜桃| 久久综合九色综合97婷婷| 亚洲第一av色| 91福利精品第一导航| 亚洲丝袜另类动漫二区| 国产a级毛片一区| 久久久久免费观看| 精品一区二区三区免费观看| 欧美精品日韩一本| 婷婷开心久久网| 欧美在线你懂的| 一区二区三区丝袜| 欧美在线你懂得| 亚洲电影激情视频网站| 91免费看`日韩一区二区| 国产精品免费av| av高清久久久| 成人免费视频在线观看| 99re这里只有精品视频首页| 国产精品人成在线观看免费 | 蜜桃久久久久久久| 欧美一区二区三区视频免费| 蜜臀av国产精品久久久久| 欧美一二三在线| 久久国产精品一区二区| 精品国产91洋老外米糕| 国内精品在线播放| 国产午夜精品一区二区三区嫩草| 国产91丝袜在线18| 亚洲图片另类小说| 精品视频色一区| 免费在线观看不卡| 久久久综合激的五月天| 成人性生交大片免费看视频在线 | 欧美亚洲高清一区| 丝袜美腿成人在线| 欧美成人a视频| 粉嫩aⅴ一区二区三区四区 | 久久综合狠狠综合| 色婷婷av一区| 天天综合色天天| 精品久久国产字幕高潮| 东方aⅴ免费观看久久av| 亚洲天堂2014| 在线不卡中文字幕| 久久电影网站中文字幕| 亚洲欧洲精品一区二区三区 | 色婷婷av一区二区三区之一色屋| 亚洲午夜视频在线观看| 精品对白一区国产伦| 国产麻豆视频精品| 亚洲最大的成人av| 精品电影一区二区| 91亚洲午夜精品久久久久久| 午夜私人影院久久久久| 国产清纯白嫩初高生在线观看91| 色综合天天综合网天天狠天天| 天天操天天色综合| 日本一区二区视频在线观看| 在线亚洲免费视频| 精品一区二区综合| 午夜精品福利久久久| 国产免费成人在线视频| 欧美一区二区三区婷婷月色| 成人av在线观| 久久99精品国产麻豆婷婷 | 激情文学综合网| 亚洲免费在线视频| 日本一区二区三区国色天香 | 成人丝袜高跟foot| 免费久久99精品国产| 一区二区三区在线观看动漫 | 日韩精品一区二区三区三区免费| 99久久99久久精品免费看蜜桃| 久久精品av麻豆的观看方式| 亚洲精品一二三区| 欧美激情一区二区三区不卡 | 亚洲午夜久久久久久久久电影网 | 亚洲精品一线二线三线| 欧美在线一二三| bt欧美亚洲午夜电影天堂| 免费人成网站在线观看欧美高清| 亚洲色图清纯唯美| 国产精品久99| 国产精品私房写真福利视频| 精品国产免费一区二区三区香蕉| 欧美日韩免费观看一区三区| 色噜噜久久综合| 97精品国产露脸对白| 国产大片一区二区| 国产露脸91国语对白| 国内精品嫩模私拍在线| 激情综合色播激情啊| 麻豆成人综合网| 久久国产精品99久久久久久老狼| 奇米综合一区二区三区精品视频| 天天免费综合色| 日日嗨av一区二区三区四区| 婷婷一区二区三区| 美女网站在线免费欧美精品| 另类小说综合欧美亚洲| 久久福利资源站| 国产精品一区二区不卡| 国产在线精品国自产拍免费| 国产一区在线观看视频| 国产激情一区二区三区| 成人黄色大片在线观看| 91蜜桃传媒精品久久久一区二区| 91美女蜜桃在线| 精品视频一区二区不卡| 91精品国产色综合久久ai换脸| 欧美情侣在线播放| 欧美丰满少妇xxxxx高潮对白| 91精品国产乱| 精品国产乱码久久久久久浪潮| 久久久久久久精| 国产精品国产三级国产普通话99 | 国产成人h网站| 99视频精品免费视频| av成人免费在线| 在线中文字幕一区| 在线成人av影院| 久久精品人人做人人综合| 亚洲欧洲精品天堂一级 | 欧美一区二区黄色| 亚洲精品一区二区三区在线观看 | 久久99国产精品久久99 | 欧美一级精品在线| 国产三级一区二区三区| 亚洲人成在线播放网站岛国| 日韩av成人高清| 国产一区二区三区电影在线观看| 成人av在线资源网站| 欧美午夜精品免费| 精品少妇一区二区三区在线播放| 亚洲国产经典视频| 视频在线观看一区| 成人妖精视频yjsp地址| 欧美视频一区二区三区在线观看| 欧美变态tickling挠脚心| 国产精品麻豆一区二区| 天堂精品中文字幕在线| 成人av影院在线| 91麻豆精品国产91久久久更新时间| 国产欧美在线观看一区| 日韩福利电影在线观看| 盗摄精品av一区二区三区| 欧美美女网站色| 自拍av一区二区三区| 紧缚奴在线一区二区三区| 色综合久久久久综合体桃花网| 精品美女在线观看| 亚洲综合一区在线| 国产成a人亚洲精品| 欧美一级久久久| 一区二区三区波多野结衣在线观看| 精品在线观看视频| 777亚洲妇女| 亚洲成人资源网| 91麻豆国产香蕉久久精品| 久久蜜桃av一区精品变态类天堂| 亚洲国产精品一区二区久久| 99久久久精品| 久久精品夜色噜噜亚洲a∨| 青青草伊人久久| 欧美日韩精品一区视频| 亚洲三级在线免费观看| 丁香六月综合激情| 国产亚洲欧美日韩俺去了| 蜜臀99久久精品久久久久久软件| 欧美午夜理伦三级在线观看| 亚洲欧洲中文日韩久久av乱码| 国产伦精品一区二区三区视频青涩 | 国产又黄又大久久| 欧美一区二区在线免费播放 | 亚洲人妖av一区二区| 国产成人精品综合在线观看| 精品国产一二三区| 狠狠色丁香婷婷综合久久片| 日韩一区二区免费在线观看| 日本视频在线一区| 91精品福利在线一区二区三区 | 男女男精品网站| 日韩限制级电影在线观看| 热久久免费视频| 日韩欧美国产综合在线一区二区三区| 亚洲6080在线| 日韩视频一区二区三区在线播放 | 欧美精品三级日韩久久| 日韩中文字幕区一区有砖一区| 欧美日韩在线一区二区|