Модификаторы while и until вычисляются в начале предложения кроме блока do который выполняется первым.
if
Пример:
$var = 1;
$var2 = 3 if $var > 0; # Результат: $var2 = 3
while
$var = 1;
print $var++ while $var < 5; #
Результат: 1234
until
Пример:
$var = 1;
print $var++ until $var > 5; # Печать $var с инкрементом
Результат: 12345
unless
Пример:
$var = 1;
print $var++ unless $var > 5; # Печать $var с инкрементом
Результат: 1
Последовательность простых предложений ограниченная функциональными ограничителями называется блоком. В Перл это может быть целый файл, последовательность предложений в операторе eval{} или чаще всего это множество простых предложений ограниченных круглыми скобками '{}'.
Сужествуют следующие виды сложных предложений:
if (EXPR) BLOCK
if (EXPR) BLOCK else BLOCK
if (EXPR) BLOCK elsif (EXPR) BLOCK ... else BLOCK
LABEL while (EXPR) BLOCK
LABEL while (EXPR) BLOCK continue BLOCK
LABEL for (EXPR; EXPR; EXPR) BLOCK
LABEL foreach VAR (LIST) BLOCK
LABEL BLOCK continue BLOCK
Обратите внимание, что сложные предложения описаны в термах блоков а не предложений как в языках C или Pascal. Поэтому необходимо всегда использовать круглые скобки для обозначения блока.
if (
$var =1;
if ($var == 1)
{ print $var,' ';
}
Результат: 1
if (
$var =2;
if ($var == 1)
{ print «$var = 1 »;
}
else
{ print «$var не равно 1 »;
}
Результат: $var не равно 1
if (
$var = 1;
if ($var == 0)
{ print «$var = 0 »;
}
elsif ($var == 1)
{ print «$var = 1 »;
}
else
{ print «Не известное $var »;
}
Результат: $var = 1
Цикл while выполняет BLOCK до тех пор пока
Блок после continue выполняется всегда перед тем как вычисляется логическое выражение
next – подобен continue в С. Переходит к началу текущего цикла т.е. повторяет итерацию.
Пример:
M1:
while ($i < 6)
{
++$i; # Увеличиваем счетчик на 1