このコードは、ファイルの内容を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;
いくつかの可能性は少しおかしくなりますが、それらも非常に便利です。