open( my $handle, '<', 'file.dat' ) or die $!;
my @data = map { do_things($_) } <$handle>;
close $handle;
Run Code Online (Sandbox Code Playgroud)
这个命令式open和close上面的内容在其他好的代码中就像一个眼睛.有没有办法以更清洁的方式写这个?我可以编写自己的read_file子程序,但应该有类似的东西.
sub read_file {
open( my $handle, '<', $_[0] ) or croak $!;
return <$handle>;
}
my @data = map { do_things($_) } read_file('file.dat');
Run Code Online (Sandbox Code Playgroud)
效率并不重要,但解决方案应该是跨平台的.
Ale*_*lex 13
免费处理,使用File :: Slurp:
use File::Slurp;
my @data = map {...} read_file($filename);
Run Code Online (Sandbox Code Playgroud)