Заявление переключателя Perl
Тестовый случайпереключатель заявление позволяет переменную , равную кратной величины.Каждое значение называется случай, а переменная будет испытано каждыйслучай переключателя для проверки.
Переключатель Исполнительный случай переключатель основан на модуле, коммутационныймодуль используетфильтр :: Util :: ЗвонитеиText :: Balancedвыполнять оба модуля должны быть установлены.
грамматика
Синтаксис выглядит следующим образом:
use Switch; switch(argument){ case 1 { print "数字 1" } case "a" { print "字符串 a" } case [1..10,42] { print "数字在列表中" } case (\@array) { print "数字在数组中" } case /\w+/ { print "正则匹配模式" } case qr/\w+/ { print "正则匹配模式" } case (\%hash) { print "哈希" } case (\&sub) { print "子进程" } else { print "不匹配之前的条件" } }
Ниже приведены правила заявления переключателя:
- Кронштейныпереключения оператор можно использовать в любом типе скалярных параметров.
В коммутаторе вы можете иметь любое количество тематических заявлений. Каждый случай следует значение для сравнения с двоеточием.
Скалярное сазе, то скалярная переключится оператор, и определяет, является ли то же самое.
Когда переменная испытываемое равна при постоянной времени, за которым следует случае оператор будет выполняться, пока не встретится с заявлениемперерыв.
Заявлениепереключатель может иметь необязательный еще,заявление в окончательной поверхности, оператор выполняется в случае , не соответствует ни одного случая.
Когда соответствующий случай, случай блок операторов выполняет код из заявления коммутатора после выполнения.
Когда соответствующий случай, если нам нужно продолжать выполнять следующий оператор случае вам нужно добавитьследующий оператор.
технологическая схема
примеров
#!/usr/bin/perl use Switch; $var = 10; @array = (10, 20, 30); %hash = ('key1' => 10, 'key2' => 20); switch($var){ case 10 { print "数字 10\n" } case "a" { print "字符串 a" } case [1..10,42] { print "数字在列表中" } case (\@array) { print "数字在数组中" } case (\%hash) { print "在哈希中" } else { print "没有匹配的条件" } }
Вышеприведенная программа, выход:
数字 10
Далее мы рассмотрим использованиеследующего экземпляра:
#!/usr/bin/perl use Switch; $var = 10; @array = (10, 20, 30); %hash = ('key1' => 10, 'key2' => 20); switch($var){ case 10 { print "数字 10\n"; next; } # 匹配后继续执行 case "a" { print "string a" } case [1..10,42] { print "数字在列表中" } case (\@array) { print "数字在数组中" } case (\%hash) { print "在哈希中" } else { print "没有匹配的条件" } }
Вышеприведенная программа, выход:
数字 10 数字在列表中