我正在看一些旧的Perl代码,我试图弄清楚这句话到底是什么意思——我做过编程,但没有用Perl。很难理解这个for语句的真正含义
for ($xx = $x+1 ; $contents[$xx] !~ m/^:1S:XXX/ ; $xx++)
是否循环直到找到:1S:XXX
如果不是,那么这意味着什么?
有人能帮忙吗?
感谢这可能更清楚:
$xx = $x+1;
$xx++ until substr($contents[$xx], 0, 7) eq ':1S:XXX';
然而,这两个和你的for
循环永远如果:1S:XXX
没有找到。因此,如果在$x+1的起始点或之后的数组元素的开始处没有找到搜索字符串,我会认为这使得$xx没有定义。
use List::Util 'first';
my $xx = first { $contents[$_] =~ /^:1S:XXX/ } $x+1 .. @contents-1;
在perl正则表达式:
可以有在前面,但不需要它。