为每个脚本添加一个标准的Perl文件打开函数有点烦人:
sub openfile{
(my $filename) = @_;
open FILE,"$filename" or die $!;
my @lines = <FILE>;
return @lines;
}
Run Code Online (Sandbox Code Playgroud)
我可以创建一个Perl模块来执行此操作,但这很简单,我确信应该已经有一个.
我正试图找到一种方法将文本文件读入数组,我似乎无法找到一个可以完成这个简单任务的Perl模块...也许我看起来太难了它已经附带了标准5.10安装.
最好我相信它看起来像这样:
my @lines = Module::File::Read("c:\some\folder\structure\file.txt");
Run Code Online (Sandbox Code Playgroud)
Cha*_*ens 27
你有几个选择,经典的do方法:
my @array = do {
open my $fh, "<", $filename
or die "could not open $filename: $!";
<$fh>;
};
Run Code Online (Sandbox Code Playgroud)
该IO ::所有方法:
use IO::All;
my @array = io($filename)->slurp;
Run Code Online (Sandbox Code Playgroud)
该文件:: Slurp的方法:
use File::Slurp;
my @array = read_file($filename);
Run Code Online (Sandbox Code Playgroud)
毕竟TIMTOWTDI可能还有更多.
dfa*_*dfa 15
这是着名的"啜食模式":
my @lines = <FILEHANDLE> ;
Run Code Online (Sandbox Code Playgroud)
您可能还会看到Perl Slurp Ease
另请参阅Perl6 :: Slurp,它实现了sllp的Perl6版本,并在"Perl Best Practices"一书中推荐.
一些例子....
my @lines = slurp 'filename';
my @lines_chomped = slurp 'filename', { chomp => 1 };
my @lines_utf8 = slurp 'filename', { utf8 => 1 };
Run Code Online (Sandbox Code Playgroud)