ファイルの中身を一括で読み込む方法

これまでファイルの中身を読み込むとき、下記のように延々とループ回してました。

my $file_name = 'hoge1.txt';
my $str;
open $fh, '<', $file_name;
while(my $line = readline($fh)){
    $str .= $line;
}
close $fh;
print $str;

でも、下記のようにすれば一括で読めるんですね。

local $/ = undef;
my $file_name = 'hoge1.txt';
my $str;
open $fh, '<', $file_name;
$str .= <$fh>;
close $fh;
print $str;

なんでも$\というのは改行区切りを示すための特殊な変数で、これをlocal宣言で一時的にオフにすると可能になるようです。