C风格循环与Perl循环(在Perl中)

C风格循环与Perl循环(在Perl中),perl,for-loop,iteration,Perl,For Loop,Iteration,我觉得perl的循环机制有些东西我不懂 我的理解是 for my $j (0 .. $#arr){...} 在功能上等同于: for(my $i=0; $i<=$#arr; $i++){..} 及 对于(my$i=0;$i$i另一种选择是do-while构造,尽管它有点笨拙 my $i; do { push @arr, $value if condition; } while ( $i++ < @arr ); 我的$i; 做{ 按@arr,$条件下的值; }而($i+

我觉得perl的循环机制有些东西我不懂

我的理解是

for my $j (0 .. $#arr){...} 
在功能上等同于:

for(my $i=0; $i<=$#arr; $i++){..}


对于(my$i=0;$i
$i另一种选择是do-while构造,尽管它有点笨拙

my $i;
do {
    push @arr, $value if condition;
} while ( $i++ < @arr );
我的$i;
做{
按@arr,$条件下的值;
}而($i++<@arr);

我是否可以使用另一种语法在每次迭代后强制求值?(除了使用c样式)


对于(my$i=0;$iIs)我可以使用另一种机制(除了c样式)在每次迭代后进行计算?相关:是的,绝对相关,但不是重复。另一个人没有意识到,在使用foreach时,$uu变量指的是实际的字符串,而不是索引。我的问题不同。是否可以使用其他语法在每次迭代后强制进行计算?(除了使用c样式)@LukeP,还有很多其他的方法。也许如果你告诉我们你试图避免的C风格是什么。A
for
loop是说我无论如何都要做这个
X
次。C风格for loop的问题是这不是真的。它们只是
loop是
for
loop衣服的
循环。如果你需要改变循环的方式,你应该让它成为一个
while
循环,让人们知道它。(顺便说一下,这不包括
last
,它实际上只是一张免循环的卡片。你可以使用
last
语句进行
for
循环。)是的,我想到了,谢谢。我会坚持用我的c循环来完成这些任务。我问这个问题的原因是因为我在另一个网站上发布了一些代码,并且因为使用c循环而受到了批评。他们告诉我切换到perl风格,所以我这样做了,结果发现perl循环不起作用。haha@LukeP对不起,你的耳朵被打了。是的,是的tyle循环几乎总是首选的,尤其是在使用迭代器之类的工具时。但是,如果您要修改正在循环的结构,那么(;;)
while
就是您所需要的。
for (my $i=0; $i<=$#arr; $i++)
{
    if(some condition that happens to be true)
    {
        push(@arr, $value);
    } 
} 
my $i;
do {
    push @arr, $value if condition;
} while ( $i++ < @arr );
for (my $i=0; $i<=$#arr; $i++) {
   ...
}
my $i=0;
while ($i<=$#arr) {
   ...
} continue {
   $i++;
}