这是我的脚本:
use strict;
use warnings;
while (<>) {
/(@.*)/;
print $`;
}
它执行正确的 - 打印方面的匹配之前的一切 - 但我得到这个:
Use of uninitialized value $` in print at FindAdd.pl line 6, <> line 1.
Use of uninitialized value $` in print at FindAdd.pl line 6, <> line 2.
Use of uninitialized value $` in print at FindAdd.pl line 6, <> line 3.
Use of uninitialized value $` in print at FindAdd.pl line 6, <> line 4.
当然,我可以如果我不使用警告,请避免这种情况,但我想知道是否有更好的方法来避免警告。 $`是否必须初始化?
哪个版本的Perl在哪个平台上?我在Mac OS X 10.9.1 Mavericks上使用了Perl 5.18.0(在10.8 Mountain Lion上编译),并没有从四行中得到任何警告:'aaaa @ bbbb','@ bbbb','xyz @','' abcdef'。 –
我怀疑输入与正则表达式不匹配,所以$'从未设置。不过,这不是你应该这样做的方式。 :) –
它确实匹配。你指的是什么? –