ファイルを一文字列として読み込む


 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関数
空行を区切り文字として読み込む