循环

Perl 支持多种循环结构:for / foreach,while / do-while 和 until。

@numbers = 1..42;
for (my $i=0; $i <= $#numbers; $i++) {
    print "$numbers[$i]\n";
}

#Can also be written as
foreach my $num (@numbers) {
    print "$num\n";
}

while 循环执行关联块之前评估条件。因此,有时块永远不会被执行。例如,如果文件句柄 $fh 是空文件的文件句柄,或者在条件之前已经用尽,则永远不会执行以下代码。

while (my $line = readline $fh) {
    say $line;
}

另一方面,do / whiledo / until 循环每次执行块之后评估条件。因此,do / whiledo / until 循环总是至少执行一次。

my $greeting_count = 0;
do {
    say "Hello";
    $greeting_count++;
} until ( $greeting_count > 1)

# Hello
# Hello