П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 180063 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 78103 раз(а).

Учебник HTML.
Просмотров 75522 раз(а).

Руководство по PHP5.
Просмотров 46578 раз(а).

Хостинг через призму DNS.
Просмотров 53966 раз(а).

Подборка текстов стандартных документов.
Просмотров 46499 раз(а).

Учебник PHP - Самоучитель
Просмотров 52655 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 53252 раз(а).

Внешние атаки...
Просмотров 43065 раз(а).

Учебник PHP.
Просмотров 38632 раз(а).

SSI в примерах.
Просмотров 28578 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Глава 9: Управляющие структуры.
9.5 Модификаторы выражений

В качестве еще одного способа сказать "если это, тогда то" Perl позволяет "прикреплять" к выражению, представляющему собой отдельный оператор, модификатор if.

выражение if управляющее_выражение;

В данном случае управляющее_выражение проверяется на истинность (по тем же правилам, что и всегда). Если оно истинно, то вычисляется выражение. Это приблизительно эквивалентно конструкции

if (управляющее_выражение) { 
  выражение;
}

Однако в данном случае дополнительные знаки препинания не нужны, оператор читается справа налево, а выражение должно быть простым (т.е. не может быть блоком операторов). Во многих случаях, однако, такая инвертированная запись оказывается наиболее естественным способом задания условия. Например, вот как можно выйти из цикла при возникновении определенного условия:

LINE: while (<STDIN>) {

last LINE if /"From: /; }

Видите, насколько проще такая запись? Более того, вы даже можете прочитать ее на нормальном языке: "последняя строка, если она начинается со слова From".

Кроме описанной выше, существуют и другие формы с модификаторами:

выраж2 unless выраж!; # как unless (выраж!) { выраж2; }

выраж2 while выраж!; # как while (выраж!) { выраж2; }

выраж2 until выраж!; # как until (выраж!) { выраж2; }

Во всех этих формах сначала вычисляется выраж!, а затем в зависимости от результата что-то делается или не делается с выраж2.

Например, вот как можно найти первую по порядку степень числа 2, которая больше заданного числа:

chomp($n = <STDIN>);
$i = 1; # исходное предположение
$i *= 2 until $i > $n; # вычислять, пока не будет найдена

Как видите, мы опять добиваемся ясности и убираем лишнее. Эти формы нельзя вкладывать одну в другую: нельзя сказать выражЗ while выраж2 if выраж!. Это объясняется тем, что форма выраж2 if выраж! — уже не выражение, а полноценный оператор; после оператора модификатор ставить нельзя.

Назад | Вперед
Содержание (общее) | Содержание раздела



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru