Читаем Язык программирования Perl полностью

# действие, выполняемое перед новой итерацией цикла

}

# сюда происходит переход по last


Циклы могут быть вложены один в другой. Когда требуется прервать вложенный цикл, перед ним ставится метка. Метка - это идентификатор, состоящий из латинских букв, знаков подчеркивания и цифр и начинающийся с буквы, после которого стоит знак двоеточия. Соблюдая хороший стиль программирования, следует записывать метки заглавными буквами. В операторе управления циклом метка указывает, выполнение какого цикла нужно прервать:


CYCLE_1:

while (условие продолжения цикла 1) {

CYCLE_2:

while (условие продолжения цикла 2) {

if (условие выхода из всех циклов) {

last CYCLE_1;

}

CYCLE3:

while (условие продолжения цикла 3) {

if (условия прерывания 2-го цикла) {

next CYCLE_2;

}

}

# сюда произойдет переход по next CYCLE_2

}

}

# сюда произойдет переход по last CYCLE_1


Метка может ставиться перед любым предложением. При помощи блока и операторов управления циклом с меткой можно имитировать управляющую структуру, подобную оператору switch в языке C. Например, так можно записать только одно присваивание переменной $say в зависимости от условия:


SWITCH: {

unless (defined $t) { # если $t не определено

$t = 25; redo SWITCH; # задать значение по умолчанию

}

if ($t < 10) { $say = 'холодно'; last SWITCH; }

if ($t < 18) { $say = 'прохладно'; last SWITCH; }

if ($t < 27) { $say = 'тепло'; last SWITCH; }

$say = 'жарко';

}

print "Сегодня $say\n";


В Perl имеется оператор перехода goto, в котором также используются метки. С его помощью можно перейти к выполнению помеченной конструкции в текущем или в вызывающем блоке. Но его нельзя применять для перехода в конструкцию, требующую инициализации: подпрограмму или цикл for. Этот оператор имеет три разновидности.

1 Переход к выполнению предложения, перед которым стоит метка:


goto МЕТКА;



2 Переход к метке, имя которой получено в результате вычисления выражения:


goto выражение;



3 Замена вызова указанной подпрограммы на подпрограмму, выполняющуюся в данный момент (применяется загрузчиками модулей Perl):


goto &подпрограмма;



Оператор goto заслуженно порицается теоретиками и практиками программирования, поскольку он сильно запутывает логику выполнения программы. Так что правилами хорошего стиля программирования рекомендуется использовать его только при крайней необходимости. Хотя goto и можно применить для выхода из цикла, но для этого лучше воспользоваться оператором last.

Порядок выполнения действий в простом предложении можно задавать с помощью модификаторов выражений. За любым выражением может стоять один из следующих модификаторов:


выражение if выражение

выражение unless выражение

выражение while выражение

выражение until выражение

выражение foreach список


Модификатор задает условие выполнения (в случае if или unless) или повторения (в случае while, until или foreach) выражения. Выражение модификатора вычисляется в первую очередь, хотя и стоит в конце конструкции. Хотя модификаторы похожи на условные и циклические управляющие конструкции, но они формируют простые предложения и поэтому не могут быть вложенными. Приведенную выше конструкцию выбора можно переписать с использованием условных модификаторов:


SWITCH: {

$t = -36, redo SWITCH unless defined $t;

$say = 'холодно', last SWITCH if $t < 10;

$say = 'прохладно', last SWITCH if $t < 18;

$say = 'тепло', last SWITCH if $t < 27;

$say = 'жарко';

}


Иногда удобно задавать повторение действия с помощью циклических модификаторов, например:


++$count, --$sum while (rand < 0.1);

$random = rand until $random > 0.7;


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

Перейти на страницу:

Похожие книги

Оптимизация BIOS. Полный справочник по всем параметрам BIOS и их настройкам
Оптимизация BIOS. Полный справочник по всем параметрам BIOS и их настройкам

Прочтя эту книгу, вы узнаете, что представляет собой BIOS, какие типы BIOS существуют, как получить доступ к BIOS и обновлять ее. Кроме того, в издании рассказано о неполадках в работе BIOS, которые приводят, например, к тому, что ваш компьютер не загружается, или к возникновению ошибок в BIOS. Что делать в этот случае? Как устранить проблему? В книге рассказывается об этом и даже приводится описание загрузки BIOS во флэш-память.Также вы научитесь использовать различные функции BIOS, узнаете, как оптимизировать их с целью улучшения производительности и надежности системы. Вы поймете, почему рекомендуемые установки являются оптимальными.После прочтения книги вы сможете оптимизировать BIOS не хуже профессионала!Книга предназначена для всех пользователей компьютера – как начинающих, которые хотят научиться правильно и грамотно настроить свою машину, используя возможности BIOS, так и профессионалов, для которых книга окажется полезным справочником по всему многообразию настроек BIOS. Перевод: А. Осипов

Адриан Вонг

Зарубежная компьютерная, околокомпьютерная литература / Программирование / Книги по IT
С компьютером на ты. Самое необходимое
С компьютером на ты. Самое необходимое

Рассказывается о работе в операционной системе Windows (на примере версий XP и 7), текстовом редакторе Word 2010 и других приложениях, необходимых каждому пользователю: архиваторах, антивирусах и программах для просмотра видео и прослушивания музыки (Winamp, QuickTime Pro). Большое внимание уделяется работе в Интернете. Рассказывается о программах для просмотра Web-страниц, об электронной почте, а также о различных полезных приложениях для работы в сети — менеджерах закачек файлов, ICQ, Windows Live Messenger, MSN и многих других. Во втором издании рассмотрена новая ОС — Windows 7, а также последние версии приложений для пользователей.Для начинающих пользователей ПК.

Андрей Александрович Егоров , Андрей Егоров

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT