|
程序很简单,是这样的:
#!/usr/bin/shell;
my $word= "perl is perl Perl PERL pERl";
my @perls;
$word =~ /perl/gi;
if (@perls = $word =~ /perl/gi){ print "@perls\n"};
if (@perls = $word =~ /perl/gi){ print "@perls\n"};
结果很奇怪,按理说应该打印出的"@perls结果是一样的,可是却是
perl Perl PERL pERl
perl perl Perl PERL pERl
如果将$word =~ /perl/gi;注释掉则结果为
perl perl Perl PERL pERl
perl perl Perl PERL pERl
而如果将$word =~ /perl/gi;这句话重复两遍,则结果为
Perl PERL pERl
perl perl Perl PERL pERl,而我调试时,无论上述那种情况打印出的$word都是
perl is perl Perl PERL pERl
看起来$word =~ /perl/gi会将匹配结果吞掉,感觉很奇怪的样子,能否有人帮我解释一下这是为什么呢?
谢谢! |
|