这段代码是在 Perl 中将文件内容读入变量的好方法吗?它有效,但我很好奇是否应该使用更好的做法。
open INPUT, "input.txt";
undef $/;
$content = <INPUT>;
close INPUT;
$/ = "\n";
这段代码是在 Perl 中将文件内容读入变量的好方法吗?它有效,但我很好奇是否应该使用更好的做法。
open INPUT, "input.txt";
undef $/;
$content = <INPUT>;
close INPUT;
$/ = "\n";
我认为常见的做法是这样的:
my $content;
open(my $fh, '<', $filename) or die "cannot open file $filename";
{
local $/;
$content = <$fh>;
}
close($fh);
使用 3 参数open
更安全。在现代 Perl 中应该如何使用文件句柄作为变量,并使用在块结束时local $/
恢复初始值,而不是硬编码的.$/
\n
use File::Slurp;
my $content = read_file( 'input.txt' ) ;
请注意,如果您处于可以安装模块的环境中,您可能需要使用IO::All
:
use IO::All;
my $contents;
io('file.txt') > $contents;
有些可能性有点疯狂,但它们也可能非常有用。