错误输出函数与错误变量
open() || die "error$!"; 成功时不执行die,失败时执行 (||或操作)
die($errstr);向STDERR输出指示错误信息的串,然后退出程序。
warn($errstr);向STDERR输出信息,不退出程序
$! 最后一次错误的信息。与die,warn 结合使用。
die($str)中$str中最后不是\n时,输出自动添加at程序名line行号。
如die("can't open");输出can't open at myprog line 13
加上\n如“can't open\n"时没有添加的信息。
open (FD,"5.pl") || die ;
@line=<FD>;
foreach (@line) {
print $_;
};
print "xxxxxxxx";
die 直接退出
open (FD,"5.pl") || warn($errstr); ;
@line=<FD>;
foreach (@line) {
print $_;
};
print "xxxxxxxx";
warn($errstr);向STDERR输出信息,不退出程序
文件缓冲:
close(F);最后要关闭文件。隐含关闭文件,重打开已经打开的,先关闭再打开,程序退出自动关闭。真正写文件。
文件缓冲:通常为代缓冲的文件写。写文件时,系统先写到称为文件缓冲区的内存中,缓冲满再真正写入磁盘。一般在关闭时缓冲内容才开始写入磁盘,
称为刷新。结果时用tail -f 是看不到不断地输出内容的。
无文件缓冲:每次写都真正写入磁盘中,不经过内存。频繁写入可能影响性能。
设置$|变量决定是否有文件缓冲,$|=1无缓冲。但值对当前输出文件有效。如STDOUT,设置另外的文件要先用select(F).
select(F)设置当前文件,返回原文件句柄。设置完再SELECT(OLD)返回原文件。
缓冲 无缓冲
打开: open,sysopen sysopen
关闭 close
读 <>,readline sysread
写 print syswrite
定位 tell,seek sysseek
文件名:
Filename:含相对路径或绝对路径的文件名
不含路径的文件名前的空格可以忽略,但有路径的文件名不能。
可以用变量代表文件名
特殊的文件如">file",可能使读变成写。使用变量代表文件名时注意过滤文件名。
赋值文件句柄;open(F,">&STDOUT);写入F文件的内容都变成写入屏幕STDOUUT
使用文件描述符:open(F,">&3);把文件描述符赋值成句柄。或者">&=3"
open() 打开成功返回非零,失败返回零
其他文件打开函数:
间接文件变量:用简单变量表示文件变量,代表文件变量名。
$a="F";open($a,"mode","path");
sysopen(H,name,m|o|d|e,priv);文件句柄,文件名,读写模式,权限。
权限类似0755的数字,模式有
O_RDONLY,
读文件
$line=<file>读一行到line,指针后移一行。缺省读到$_中
$/='\n',行分割符,遇到它则为一行结束,行包含$/.
可用chomp($s)去除标志,行尾不含$/则不去除自负
可设置$/为其他自负窜,遇到$/为行结束,chomp 去除此字符窜
@array = <file>文件内容全部读出,每行为一个元素。含回车。
当从STDIN中读时,可省略为<> .原理见后
read (F,$in,len[,$offset])
getc(F) 读一个字符
用$/ 来表示行分割符
perl 文件[二]
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
上一篇:perl 文件[四]
下一篇:perl 文件[三]
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
perl测试文件
哈哈哈
perl -
Perl脚本学习笔记(二)
Perl脚本学习笔记(二)
职场 script 休闲 Perl