空行を区切り文字として読み込む
普通にファイルを読み込むと一行ずつの読み込みになりますが、特殊変数$/に空文字を設定することで、空行を区切りにデータを読み込むことができます。
そのまま$/を変更するとプログラム全体に影響を及ぼすのでlocalで影響範囲を限定した方が良いです。
ここからプログラム
{
local $/ = '';
while (my $line = <DATA>) {
chomp $line;
print "=== BEGIN\n";
print $line, "\n";
print "===== END\n\n";
}
}
__END__
aaa
bbb
ccc
ddd
以下、実行結果
=== BEGIN
aaa
bbb
===== END
=== BEGIN
ccc
===== END
=== BEGIN
ddd
===== END
