Che*_*eso 1 perl file append handler
这段小代码一直是我的一堆脚本中的主要内容,但我从其他人编写的另一个工作脚本中获取了语法,并根据我的需要对其进行了调整.我甚至不确定这里使用的语法是打开文件处理程序的最佳或最常用的方法.
代码是:
$fh = \*STAT_FILE;
open ($fh,">>".$stat_file) or die "Can't open $stat_file: $!\n";
my $print_flag = ( -z $stat_file );
Run Code Online (Sandbox Code Playgroud)
我不完全理解上面代码的第一行和最后一行.具体而言,\*STAT_FILE和-z分别.
我知道,在大多数情况下,第二行将打开一个文件以追加或退出并抛出错误.但同样,我不明白$!这条线上的服务目的是什么.
有人可以用伪线逐行解释这个Perl代码吗?另外,如果上述方法不是首选方法,那么是什么?
提前致谢
run*_*rig 11
在perl 5.6之前,文件句柄只能是globs(裸字)或对globs的引用(这是\*STAT_FILE是).此外,最好使用3参数打开(参见文档.另见perlopentut).所以你现在可以这样做:
open(my $fh, ">>", $stat_file) or die "Failed to open $stat_file: $!";
Run Code Online (Sandbox Code Playgroud)
并忘记\*STAT_FILE.
-z是文件测试函数之一(并将文件名或文件句柄作为参数)并测试以查看文件的大小是否为零.
$!是特殊变量之一,并包含最新的系统错误消息(在这种情况下,为什么您无法打开文件,可能是权限问题,或者文件路径中的目录不存在等).
您应该学会使用perldoc,所有这些都在perldoc中:
perldoc perlfunc(特别是perldoc -f open和perldoc -f -X)
perldoc perlvar
| 归档时间: |
|
| 查看次数: |
202 次 |
| 最近记录: |