| |
Perl教学 第十一篇 文件系统
|
日期:2007年5月10日 作者:
查看:[大字体 中字体
小字体]
|
本章所讲的函数多数使用了UNIX操作系统的特性,在非UNIX系统中,一些函数可能没有定义或有不同的工作方式,使用时请查看Perl联机文档。
一、文件输入/输出函数
本节讲述从文件中读取信息和向文件写入信息的内置库函数。
1、基本I/O函数
一些I/O函数在前面的章节中已有讲述,如
·open:允许程序访问文件
·close:终止文件访问
·print:文件写入字符串
·write:向文件写入格式化信息
·printf:格式化字符串并输出到文件
这里简单回顾一下,再讲一些前面未提到的函数。
1)open函数
open函数将文件变量与某文件联系起来,提供访问文件的接口,例如:open(MYVAR, "/u/file"); 如果文件打开成功,则返回非零值,否则返回零。缺省地,open打开文件用以读取其内容,若想打开文件以写入内容,则在文件名前加个大于号:open(MYVAR, ">/u/file"); 向已有的文件末尾添加内容用两个大于号:open(MYVAR, ">>/u/file"); 若想打开文件作为数据导向的命令,则在命令前加上管道符():open(MAIL, "mail dave");
2)用open重定向输入
可以把打开的文件句柄用作向程序输入数据的命令,方法是在命令后加管道符(),如:
open(CAT, "cat file*");
对open的调用运行命令cat file* ,此命令创建一个临时文件,这个文件的内容是所有以file打头的文件的内容连接而成,此文件看作输入文件,可用文件变量CAT访问,如:
$input = ;
下面的例子使用命令w的输出来列出当前登录的所有用户名。
1 : #!/usr/local/bin/perl
2 :
3 : open (WOUT, "w");
4 : $time = ;
5 : $time =~ s/^ *//;
6 : $time =~ s/ .*//;
7 : ; # skip headings line
8 : @users = ;
9 : close (WOUT);
10: foreach $user (@users) {
11: $user =~ s/ .*//;
12: }
13: print ("Current time: $time");
14: print ("Users logged on:\n");
15: $prevuser = "";
16: foreach $user (sort @users) {
17: if ($user ne $prevuser) {
18: print ("\t$user");
19: $prevuser = $user;
20: }
21: }
结果输出如下:
Current time: 4:25pm
Users logged on:
dave
kilroy
root
zarquon
w命令列出当前时间、系统负载和登录的用户,以及每个用户的作业时间和当前运行的命令,如:
4:25pm up 1 day, 6:37, 6 users, load average: 0.79, 0.36, 0.28
User tty login@ idle JCPU PCPU what
dave ttyp0 2:26pm 27 3 w
kilroy ttyp1 9:01am 2:27 1:04 11 -csh
kilroy ttyp2 9:02am 43 1:46 27 rn
root ttyp3 4:22pm 2 -csh
zarquon ttyp4 1:26pm 4 43 16 cc myprog.c
kilroy ttyp5 9:03am 2:14 48 /usr/games/hack
上一篇:Perl教学 第十二篇 Perl5中的引用(指针)
下一篇:Perl教学 第十篇 格式化输出
|
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.abcdown.net
| |