我在看一些旧的Perl代码,我试图弄清楚这个语句到底是什么意思--我做过编程,但不是用Perl。我很难弄清楚这个for语句到底是什么意思。
for ($xx = $x+1 ; $contents[$xx] !~ m/^\:1S\:XXX/ ; $xx++)
这是循环直到找到:1S:XXX吗如果不是,这意味着什么?有人能帮忙吗?谢谢
:1S:XXX
ulydmbyx1#
这也许更清楚:
$xx = $x+1; $xx++ until substr($contents[$xx], 0, 7) eq ':1S:XXX';
但是如果没有找到:1S:XXX,那么for和:1S:XXX都会一直循环下去。所以我认为如果在$x+1的起始点或之后的数组元素的开头没有找到要搜索的字符串,那么$xx就不会被定义。
for
use List::Util 'first'; my $xx = first { $contents[$_] =~ /^:1S:XXX/ } $x+1 .. @contents-1;
在perl正则表达式中,:可以在前面有\,但不需要它。
:
\
1条答案
按热度按时间ulydmbyx1#
这也许更清楚:
但是如果没有找到
:1S:XXX
,那么for
和:1S:XXX
都会一直循环下去。所以我认为如果在$x+1的起始点或之后的数组元素的开头没有找到要搜索的字符串,那么$xx就不会被定义。在perl正则表达式中,
:
可以在前面有\
,但不需要它。