📄 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 + -