If EXPR, unless EXPR, while EXPR, until EXPR
де EXPR - вираз, що повертає логічне значення true або false. Модифікатори while і until обчислюються на початку речення, окрім do, який виконується першим.
if EXPR- Модифікатор "якщо". Програма виконується, якщо EXPR повертає true.
$var = 1;
if $var > 0 $var2 = 3; # Результат: $var2 = 3
while EXPR - Модифікатор "доки". Програма виконується доки EXPR = true
$var = 1;
print $var++ while $var < 5; # Результат: 1234
until EXPR- Модифікатор "до ". Програма виконується до тих пір, поки EXPR = false
$var = 1;
print $var++ until $var > 5; # Результат: 12345
unless EXPR - Модифікатор "якщо не". Зворотний до if. Вираз виконується, якщо EXPR = false.
$var = 1;
print $var++ unless $var > 5; # Результат: 1
Складні вирази.Послідовність простих виразів, обмежена функціональними обмежувачами, називається блоком. У Perl це може бути цілий файл, послідовність виразів в операторові 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. Тому необхідно використовувати круглі дужки для позначення блоку.
if (EXPR) BLOCK - Обчислюється логічне вираз EXPR і якщо true блок виконується.
$var =1;
if ($var == 1)
{ print $var,"\n";
}
Результат: 1
if (EXPR) BLOCK else BLOCK2 - Якщо EXPR=true виконується BLOCK інакше BLOCK2.
$var =2;
if ($var == 1)
{ print "\$var = 1\n";
}
else
{ print "\$var не рівне 1\n";
}
Результат: $var не рівне 1
if (EXPR1) BLOCK1 elsif (EXPR2) BLOCK2 ... else BLOCK - Якщо EXPR1=true виконується BLOCK1 інакше якщо EXPR2=true виконується BLOCK2 інакше ... інакше BLOCK.
$var = 1;
if ($var == 0)
{ print "\$var = 0\n";
}
elsif ($var == 1)
{ print "\$var = 1\n";
}
else
{ print "Не відоме \$var\n";
}
Результат: $var = 1
Цикл While. Виконує BLOCK до тих пір, поки EXPR = true. Мітка LABEL не обов'язкова і складається з ідентифікатора, що завершується символом ':'. Мітка необхідна при використанні усередині блоку циклу операторів next, що управляють, last і redo. Якщо мітка відсутня, то ці оператори посилаються на початок найближчого циклу. Блок після continue виконується завжди перед тим, як обчислюється логічне вираз EXPR. Це подібно EXPR3 в вирази for, тому в цьому блоці зручно змінювати лічильники і прапори циклу, навіть якщо застосовується оператор next.
Дата добавления: 2016-04-02; просмотров: 676;