Оператор switch в Perl

Perl 条件语句Условные операторы в Perl

Aswitchоператор позволяет проверять переменную на равенство нескольким значениям. Каждое значение называется case, и проверяемая переменная проверяется на соответствие каждомуswitch caseпроверяется.

выполнение switch case основано наSwitchмодуле,SwitchПо умолчанию модуль не установлен.

Установите модуль Switch.pm

Установка с помощью CPAN

Откройте окно командной строки, введите команду cpan, затем введите команду install Switch:

# cpan
cpan[1]> install Switch           // 安装
cpan[2]> exit                     // 退出

Установка в Ubuntu с помощью apt-get

sudo apt-get install libswitch-perl

Синтаксис

Формат синтаксиса следующий:

Синтаксис

use Switch; switch(аргумент){ 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 "Не соответствует предыдущим условиям" } }

Ниже приведены правила для оператора switch:

  • switchВ круглых скобках оператора можно использовать скалярный аргумент любого типа.
  • В switch может быть любое количество операторов case. За каждым case следует значение для сравнения и двоеточие.

  • Скаляр после оператора case сравнивается со скаляром оператора switch, чтобы определить, равны ли они.

  • Когда проверяемая переменная равна константе в case, операторы, следующие за case, будут выполняться до тех пор, пока не встретитсяbreak-оператор.

  • switchОператор может иметь необязательныйelse, который находится в конце и выполняется, когда ни один из case не совпадает.

  • После совпадения case выполняется блок оператора case, а затем происходит выход из оператора switch.

  • После совпадения case, если нужно продолжить выполнение следующих операторов case, необходимо добавитьnext-оператор.

Блок-схема

Пример

#!/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

Далее рассмотрим использованиеnextна примере:

Пример

#!/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 "строка a" } case [1..10,42] { print "Число в списке" } case (\@array) { print "Число в массиве" } case (\%hash) { print "В хеше" } else { print "Нет совпадающего условия" } }

Выполнение вышеуказанной программы дает следующий вывод:

数字 10
数字在列表中

Perl 条件语句Условные операторы в Perl

Другие расширения