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では、このようにしてファイル全体の内容を読み込むことがあるということを覚えておきましょう。

Perlプログラミングちゃんねるのご紹介

コンテンツ提供
Perlの書籍
  • 業務に役立つPerl

    ログ解析など日本語を含むテキスト処理の実践!
    この私、Perlゼミの作者が執筆しています。
    ご購入、口コミ歓迎。
  • Perlの書籍 »
自己紹介
木本裕紀

「今日も元気だ! Perlで元気!」

Perlプログラミングちゃんねる

Youtubeチャンネル登録、いいね、コメント歓迎

Twitter
フォロー、いいね、リツート、コメント歓迎

kimoto.yuki@gmail.com
応援メッセージ、質問、間違い報告歓迎

Perl総合研究所