Поздно на вечеринку - я недавно связался с for(;;)
.В моем элементарном тестировании для условных выражений A
и B
то, что вы хотите сделать с:
do {
last if A;
} while(B);
, может быть выполнено как:
for(;; B || last) {
last if A;
}
Немного уродливо,но, возможно, не более, чем другие обходные пути :).Пример:
my $i=1;
for(;; $i<=3 || last) {
print "$i ";
++$i;
}
Выходы 1 2 3
.И вы можете объединить приращение, если хотите:
my $i=1;
for(;; ++$i, $i<=3 || last) {
print "$i ";
}
(используя ||
, поскольку оно имеет более высокий приоритет, чем ,
)