?? perl5.htm
字號:
<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>是否只有"真正的用戶"可寫</td>
</tr>
<tr>
<td valign=top width=192>-X</td>
<td valign=top width=384>是否只有"真正的用戶"可執行</td>
</tr>
<tr>
<td colspan=2>注:“真正的用戶”指登錄時指定的userid,與當前進程用戶ID相對,命令suid可以改變有效用戶ID。</td>
</tr>
</table>
</center>
</div>
<p> 例:<br>
unless (open(INFILE, "infile"))
{<br>
die ("Input file infile cannot be opened.\n");<br>
}<br>
if (-e "outfile") {<br>
die ("Output file outfile already exists.\n");<br>
}<br>
unless (open(OUTFILE, ">outfile"))
{<br>
die ("Output file outfile cannot be
opened.\n");<br>
}<br>
等價于<br>
open(INFILE, "infile") &&
!(-e "outfile") &&<br>
open(OUTFILE, ">outfile") ||
die("Cannot open files\n");<br>
<a name=五、命令行參數>五、命令行參數</a><br>
象C一樣,PERL也有存儲命令行參數的數組@ARGV,可以用來分別處理各個命令行參數;與C不同的是,$ARGV[0]是第一個參數,而不是程序名本身。<br>
$var = $ARGV[0]; # 第一個參數<br>
$numargs = @ARGV; # 參數的個數<br>
PERL中,<>操作符實際上是對數組@ARGV的隱含的引用,其工作原理為:<br>
1、當PERL解釋器第一次看到<>時,打開以$ARGV[0]為文件名的文件;<br>
2、執行動作shift(@ARGV); 即把數組@ARGV的元素向前移動一個,其元素數量即減少了一個。<br>
3、<>操作符讀取在第一步打開的文件中的所有行。<br>
4、讀完后,解釋器回到第一步重復。<br>
例:<br>
@ARGV = ("myfile1", "myfile2");
#實際上由命令行參數賦值<br>
while ($line = <>) {<br>
print ($line);<br>
}<br>
將把文件myfile1和myfile2的內容打印出來。<br>
<a name=六、打開管道>六、打開管道</a><br>
用程序的形式也可以象命令行一樣打開和使用管道(ex:ls > tempfile)。如語句open
(MYPIPE, "| cat >hello"); 打開一個管道,發送到MYPIPE的輸出成為命令"cat
>hello"的輸入。由于cat命令將顯示輸入文件的內容,故該語句等價于open(MYPIPE, ">hello");
用管道發送郵件如下:<br>
open (MESSAGE, "| mail dave");<br>
print MESSAGE ("Hi, Dave! Your Perl
program sent this!\n");<br>
close (MESSAGE);<br>
</p>
<p align=center><a href=perl4.htm>上一章</a> <a href=perl6.htm>下一章</a>
<a href=index.htm>目錄</a></p>
<p align=center> </p>
<!-- #EndEditable --></td>
</tr>
</table>
</td></tr></table></body><!-- #EndTemplate --></html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -