ファイルを一文字列として読み込む
File::SlurpモジュールやPath::Classモジュールを使うと簡単です。
モジュールを使わない方法としては、特殊変数$/にundefを設定する方法が簡単です。この場合、そのまま$/を変更するとプログラム全体に影響を及ぼすのでlocalで影響範囲を限定した方が良いです。
use strict; use warnings; use File::Slurp; my $filename = '/home/user1/data.txt'; my $text = File::Slurp::read_file($filename); print $text;
use strict; use warnings; use Path::Class; my $filename = '/home/user1/data.txt'; my $text = Path::Class::file($filename)->slurp; print $text;
use strict; use warnings; my $filename = '/home/user1/data.txt'; open my $fh, '<', $filename or die $!; my $doc; { local $/ = undef; $doc = <$fh>; } print $doc;
use strict; use warnings; my $filename = '/home/user1/data.txt'; open my $fh, '<', $filename or die $!; my $doc = do { local $/ = undef; <$fh>; }; print $doc;
関連項目
・open関数・空行を区切り文字として読み込む