Листинг 5.19. Реализация переключателя
#! perl -w
$var = 3;
SWITCH: {
$case1 = 1, last SWITCH if $var == 1;
$case2 = 1, last SWITCH if $var == 2:
$case3 = 1, last SWITCH if $var == 3;
$nothing = 1;
}
После выполнения именованного блока операторов SWITCH переменная $case1 будет равна 1, если $var
равна 1, $case2 будет равна 2, если $var равна 2, и, наконец, $case3 будет равна 3, если $var равна 3.
В случае если переменная $var не равна ни одному из перечисленных значений, то переменная $nothing
будет равна 1. Конечно, это простейший переключатель, разработанный всего лишь для демонстрации
возможности быстрого создания переключателя в Perl. Для выполнения группы операторов в переключателе
можно использовать не модификатор if, а оператор выбора if.
Блоки могут быть вложенными друг в друга. Именованные блоки и команды управления циклом,
используемые для выхода из внутренних блоков, позволяют создавать достаточно прозрачные конструкции,
реализующие сложные алгоритмы.