Perl の入力レコード セパレータを $/ = "__Data__\n" に設定すると機能しないのはなぜですか?
データ レコードは次のように設定されます。
__Data__\n
1aaaaaaaaaa\n
aaaaaaaaaaa\n
aaaaaaaaaaaaa\n
__Data__\n
1bbbbbbbbbb\n
bbbbbbbbbbb\n
bbbbbbbbbbbbb\n
__Data__\n
1cccccccccc\n
ccccccccccc\n
ccccccccccccc\n
__Data__\n
以下は、各データ レコードの最初の行にアクセスするための Perl コードです...
$/ = "__Data__\n";
open READFILE, "<", "logA.txt" or die "Unable to open file";
while (<READFILE>)
{
if (/([^\n]*)\n(.*)/sm)
{
print "$1\n";
}
}
close(<READFILE>);
次の望ましくない出力が得られます。
__Data__
次の望ましい出力ではありません。
1aaaaaaaaaaa
1bbbbbbbbbbb
1ccccccccccc
入力レコード区切りが機能し$/="__Data__";
ないのはなぜですか? どのように機能する必要がありますか?