這是我的腳本:
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'。 –
我懷疑輸入與正則表達式不匹配,所以$'從未設置。不過,這不是你應該這樣做的方式。 :) –
它確實匹配。你指的是什麼? –