15

可能重复:
在 Perl 中将文件转换为字符串的最佳方法是什么?

这段代码是在 Perl 中将文件内容读入变量的好方法吗?它有效,但我很好奇是否应该使用更好的做法。

open INPUT, "input.txt";
undef $/;
$content = <INPUT>;
close INPUT;
$/ = "\n";
4

3 回答 3

35

我认为常见的做法是这样的:

    my $content;
    open(my $fh, '<', $filename) or die "cannot open file $filename";
    {
        local $/;
        $content = <$fh>;
    }
    close($fh);

使用 3 参数open更安全。在现代 Perl 中应该如何使用文件句柄作为变量,并使用在块结束时local $/恢复初始值,而不是硬编码的.$/\n

于 2010-11-03T13:58:51.737 回答
15
use File::Slurp;
my $content = read_file( 'input.txt' ) ;
于 2010-11-03T14:12:27.953 回答
3

请注意,如果您处于可以安装模块的环境中,您可能需要使用IO::All

use IO::All;
my $contents;
io('file.txt') > $contents;

有些可能性有点疯狂,但它们也可能非常有用。

于 2010-11-03T14:10:53.603 回答