重複の可能性:
Perl でファイルを文字列に丸呑みする最良の方法は何ですか?
このコードは、ファイルの内容を Perl の変数に読み込む良い方法ですか? それは機能しますが、使用すべきより良い方法があるかどうか知りたいです。
open INPUT, "input.txt";
undef $/;
$content = <INPUT>;
close INPUT;
$/ = "\n";
重複の可能性:
Perl でファイルを文字列に丸呑みする最良の方法は何ですか?
このコードは、ファイルの内容を 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;
いくつかの可能性は少しおかしくなりますが、非常に便利な場合もあります。