在Perl中打开和读取文件的最好方法是什么?
请注意 – 我不是在寻找“正确”的方式来打开/读取文件,或者我应该打开/读取文件的方式每一次。我只是想知道大多数人使用的方式,或许可以同时学习一些新的方法:)*
在我的Perl程序中一个非常常见的代码块是打开一个文件并读取或写入它。我已经看到了这么多的方式这样做,我执行这项任务的风格已经改变了几年了。我只是想知道什么最好的(如果有一个最好的方法)方法是这样做? 我曾经打开过这样的文件: my $input_file = "/path/to/my/file"; open INPUT_FILE,"<$input_file" || die "Can't open $input_file: $!n"; 但我认为有错误陷阱的问题。 添加括号似乎修复错误陷阱: open (INPUT_FILE,"<$input_file") || die "Can't open $input_file: $!n"; 我知道你也可以分配一个文件句柄到一个变量,因此,而不是像我上面的使用“INPUT_FILE”,我可以使用$ input_filehandle – 是更好的方式? 对于读取文件,如果它很小,globbing有什么问题,像这样? my @array = <INPUT_FILE>; 要么 my $file_contents = join( "n",<INPUT_FILE> ); 或者你应该总是循环,像这样: my @array; while (<INPUT_FILE>) { push(@array,$_); } 我知道有这么多方法来完成perl的事情,我只是想知道是否有首选/标准的方法打开和阅读文件? 解决方法
没有普遍的标准,但有理由更喜欢彼此。我的首选形式是:
open( my $input_fh,"<",$input_file ) || die "Can't open $input_file: $!"; 原因是: >您立即报告错误。 (如果你想要的,用“warn”替换“die”。) my @lines = <$input_fh>; 你甚至可以这样做,如果你需要处理所有行作为一个单一的字符串: my $text = join('',<$input_fh>); 对于长文件,您将要使用while迭代线,或使用读。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |