Perl / 9. Другие управляющие конструкции

В этой главе мы рассмотрим другие способы структурирования кода Perl. В основном эти средства не расширяют возможности языка, но упрощают вашу работу или помогают выполнить ее более удобно. Вы не обязаны использовать их в своем коде, но не поддавайтесь искушению пропустить эту главу – рано или поздно эти управляющие конструкции встретятся вам в коде, написанном другими программистами (более того, вы совершенно точно увидите их к тому моменту, когда закончите читать книгу).
Статьи раздела '9. Другие управляющие конструкции':
Автоинкремент и автодекремент
Значения скалярных переменных часто требуется увеличить или уменьшить на 1. Эти операции являются весьма типичными, поэтому для них были созданы сокращения (как и для многих других часто выполняемых операций). Оператор автоинкреме...
Значение автоинкремента
Выборка значения может быть совмещена с изменением переменной. Если поставить оператор ++ перед именем переменной, то переменная сначала увеличивается, а затем происходит выборка ее значения. Эта форма называется префиксным инкрем...
Значение ускоренного логического оператора
В отличие от C (и других похожих языков), значением ускоренного логического оператора является значение, полученное при обработке последней части, а не логическая величина. Формально результат получается эквивалентным: последняя в...
Логические операторы
Как и следовало ожидать, Perl содержит все необходимые логические операторы для работы с логическими (булевскими) значениями true/ false. Например, логические условия часто объединяются логическими операторами AND (&&) и OR (||): ...
Метки блоков
Чтобы выполнить операцию не с внутренним, а каким-то другим блоком цикла, воспользуйтесь меткой. Метки в Perl напоминают другие идентификаторы – они тоже состоят из букв, цифр и символов подчеркивания, но не могут начинаться с циф...
Модификаторы выражений
Чтобы сделать запись более компактной, после выражения может следовать управляющий модификатор. Например, модификатор if работает по аналогии с блоком if: print "$n is a negative number.\n" if $n < 0; Результат получается то...
Оператор //
В предыдущем разделе мы показали, как присваивать значение по умолчанию при помощи оператора ||. Но при этом игнорировался особый случай – ложные, но определенные (а следовательно, абсолютно законные) значения. Далее было представ...
Оператор last
Оператор last немедленно прекращает выполнение цикла. (Если вы использовали оператор break в C или похожем языке, это его аналог.) В сущности, last открывает «аварийный выход» из блока цикла. Его выполнение завершает цикл. Пример:...
Оператор next
Иногда текущая итерация завершена, но прекращать выполнение всего цикла пока рано. Для таких случаев существует оператор next, осуществляющий переход к нижнему концу текущего блока цикла. После next выполнение продолжается со след...
Оператор redo
Триаду операторов управления циклами завершает оператор redo. Он возвращает управление в начало текущего блока цикла без проверки условия или перехода к следующей итерации. (Если вы программировали на C или другом похожем языке, н...
Простейший блок
Так называемый простейший блок (naked block) записывается без ключевых слов или условий. Допустим, в программе присутствует цикл while, который выглядит примерно так: while (условие) { тело; тело; тело; } Убрав из него к...
Секция else в unless
Конструкция unless даже может содержать необязательную секцию else. Этот синтаксис поддерживается, но он может привести к потенциальным недоразумениям: unless ($mon =~ /^Feb/) { print "This month has at least thirty days.\n"; ...
Секция elsif
Время от времени требуется последовательно проверить несколько условий и узнать, какое из них истинно. Для этого можно воспользоваться секцией elsif конструкции if, как в следующем примере: if ( ! defined $dino) { print "The v...
Тайная связь между foreach и for
Оказывается, для парсера Perl ключевое слово foreach в точности эквивалентно ключевому слову for. Иначе говоря, каждый раз, когда Perl встречает одно из этих слов, он не отличает одно от другого. Чтобы узнать, что вы имели в виду,...
Тернарный оператор ?:
Когда Ларри выбирал, какие операторы должны быть доступны в Perl, он не захотел обижать бывших программистов C, поэтому в Perl были перенесены все операторы C. А это означало, что в Perl переносится и самый запутанный оператор C –...
Управление циклом
Несомненно, вы уже поняли, что Perl относится к числу так называемых структурных языков программирования. В частности, в любой блок кода можно войти лишь через одну точку в начале блока. Но в некоторых случаях необходимы более шир...
Управляющая конструкция for
Управляющая конструкция Perl for напоминает стандартные конструкции циклов из других языков, таких как C. Она выглядит так: for (инициализация; проверка; приращение) { тело; тело; } Но Perl рассматривает эту конструкцию к...
Управляющая конструкция unless
В управляющей конструкции if блок кода выполняется только в том случае, если условие истинно. Если блок кода должен выполняться только при ложном условии, замените if на unless: unless ($fred =~ /^[A-Z_]\w*$/i) { print "The va...
Управляющая конструкция until
Иногда бывает удобнее выполнить цикл while с обратным условием. Для этого воспользуйтесь конструкцией until: until ($j > $i) { $j *= 2; } Цикл выполняется до тех пор, пока выражение в условии не вернет true. Но в действите...
Управляющая конструкция until
Иногда бывает удобнее выполнить цикл while с обратным условием. Для этого воспользуйтесь конструкцией until: until ($j > $i) { $j *= 2; } Цикл выполняется до тех пор, пока выражение в условии не вернет true. Но в действите...

Страницы: 1 2