Perlゼミ

Perlでテキスト処理、Linuxサーバー管理、Webシステム開発

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

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

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

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

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

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

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

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

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

Perlの入門書
  • 初めてのPerl 第7版

    Perl入門 定番の一冊
  • 業務に役立つPerl

    ログ解析など日本語を含むテキスト処理の実践!
Twitter
Perlゼミの情報が役立ったら、フォロー、いいね、リツートで応援。