Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発ならPerl

ファイルの内容をすべて読み込む

Perlでファイルの内容を一括して読み込むには、どうすればよいでしょうか。慣例的に、次のような記述によって、ファイルの内容を一度に読み込むことが多いです。

my $file = 'a.txt';
open my $fh, '<', $file
  or die "Can't open $file: $!";

# ファイルの内容を一度に読み込む
my $content = do { local $/; <$fh> };

doブロックは最後に評価された値を返すものです。

localによって、ファイルの中での改行を表す特殊変数「$/」を未定義にしています。

これによってファイル入力演算子「<$fh>」が、ファイル全体の内容を返すようにしています。

そして、スコープが終わると「$/」は元の状態に戻ります。

ファイルを一度に読むこむ関数を標準で持たないPerlでは、このようにしてファイル全体の内容を読み込むことがあるということを覚えておきましょう。

Qiitaで
「3分間Perlテキストクッキング」
という連載を始めました。
テキスト処理を題材にして、3分くらいで読める分量で、書いていきます。
文字コード、テキストデータ、コンピュータにおけるテキストの扱いなど、ソフトウェアの基礎の話題も
3分間Perlテキストクッキング