我有一个小文本文件,我想读入一个标量变量,就像它在文件中一样(保留行分隔符和其他空格).
Python中的等价物就像是
buffer = "" try: file = open("fileName", 'rU') try: buffer += file.read() finally: file.close() except IOError: buffer += "The file could not be opened."
这只是为了简单地重新显示网页上文件的内容,这就是我的错误信息进入我的文件缓冲区的原因.
从Perl Cookbook:
my $filename = 'file.txt'; open( FILE, '<', $filename ) or die 'Could not open file: ' . $!; undef $/; my $whole_file =;
我会将这些变化本地化:
my $whole_file = ''; { local $/; $whole_file =; }
作为替代亚历克斯说,你可以安装的文件:: Slurp的模块(cpan -i File::Slurp
命令行),并使用此:
use File::Slurp; # Read data into a variable my $buffer = read_file("fileName"); # or read data into an array my @buffer = read_file("fileName");
注意这个die
s(嗯...... croak
,但这只是从模块调用die的正确方法)出错,所以你可能需要在eval块中运行它来捕获任何错误.
如果我附近没有Slurp或Perl6 :: Slurp,那么我通常会跟....
open my $fh, '<', 'file.txt' or die $!; my $whole_file = do { local $/; <$fh> };