为什么将 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__";
不起作用?它应该如何工作?