masatoの日記

やっていきます

テキストファイルを一気に読み込む

Whileループじゃなくて一気に中身を変数にいれたいときはこうする。

my $str = do {
    open my $fh, '<', $file or die $!;
    local $/ = undef;
    <$fh>;
};

local $/ = undefとやるとdoブロック内でのみ改行コードを無視できる。

 readline関数が一度に読み取るのは、$/ に設定されている文字が出現するまでです。$/は、インプットレコードセパレータといい、デフォルトでは \n 、改行文字が設定されています。

すべての行をスカラ変数に読み込む すべての行を配列に読み込む - PerlならサンプルコードPerl入門