ファイルの内容をすべて読み込む
Perlでファイルの内容を一括して読み込むには、どうすればよいでしょうか。慣例的に、次のような記述によって、ファイルの内容を一度に読み込むことが多いです。
my $file = 'a.txt'; open my $fh, '<', $file or die "Can't open $file: $!"; # ファイルの内容を一度に読み込む my $content = do { local $/; <$fh> };
doブロックは最後に評価された値を返すものです。
localによって、ファイルの中での改行を表す特殊変数「$/」を未定義にしています。
これによってファイル入力演算子「<$fh>」が、ファイル全体の内容を返すようにしています。
そして、スコープが終わると「$/」は元の状態に戻ります。
ファイルを一度に読むこむ関数を標準で持たないPerlでは、このようにしてファイル全体の内容を読み込むことがあるということを覚えておきましょう。