Использование технологий WWW для доступа к базам данных

       

Составные операторы


if (EXPR) BLOCK

if (EXPR) BLOCK else BLOCK

if (EXPR) BLOCK eslif (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 все определяется в терминах блоков, а не операторов:

то есть фигурные скобки являются обязательными.

Метка состоит из идентификатора и двоеточия. Она ставится в начале цикла и

служит указателем для операторов цикла next, last и redo (их описание смотри

ниже). Если это continue блок, то он выполняется перед тем, как условие будет



проверено снова, как третья часть for оператора в C. Правильность условия

может зависеть от результатов выполнения блока, например:

$i = 1;

while ($i < 10){

...

} continue {

$i++;

}

или, что тоже самое:

for ($i = 1; $i < 10; $i++;) {

...

}

Foreach цикл присваивает переменной по очереди каждое значение из списка и выполняет над ней все команды из блока. Переменная является локальной и существует только в пределах данного цикла. Если список является массивом, то его

можно изменять в цикле, посредством операций над переменной. Если переменная

опускается, то по умолчанию в качестве нее используется $_.

foreach \$elem(@elements) \{\$elem = \$elem * 2;\}

-- цикл по всему содержимому

массива @items.

Пример:

for ((1,2,3,4,5,6,7,8,9,10,'boom')) {

print $_,"\n"; sleep(1); }

for (1..15) { print "Merry Christmas\n"; }

foreach $item (split(/[\/\*\\n]/,$ENV{'TERMCAP'})) {

print "Item: $item\n"; }

Блок семантически эквивалентен циклу, который исполняется один раз. Поэтому в

него можно включать операторы контроля цикла, чтобы выйти из него или запустить

его еще раз.



Содержание раздела