switch Perl
caso de teste uma instruçãoswitch permite que uma variável igual ao valor múltiplo.Cada valor é chamado de um caso, ea variável será testado cadacaso mude para ser verificado.
Alternar caso interruptor Executivo é baseado no módulo, módulo de chaveusafiltro :: Util :: LigueeText :: equilibradapara executar, ambos os módulos precisam ser instalados.
gramática
A sintaxe é a seguinte:
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 "不匹配之前的条件" } }
A seguir estão as regras da instrução switch:
- suportesalternar instrução pode ser utilizado em qualquer tipo de parâmetros escalares.
Em um interruptor que você pode ter qualquer número de instruções case. Cada caso é seguido por um valor a comparar com um cólon.
declaração caso escalar, então a escalar mudará declaração, e determina se ou não o mesmo.
Quando a variável a ser testado é igual ao caso da constante de tempo, seguido por uma indicação de caso vai ser executada, até encontrar uma indicação daruptura.
switch pode ter um opcional else,a instrução na superfície final, a instrução é executada no caso não corresponde a nenhum caso.
Quando o caso de correspondência, bloco de instrução caso executa o código para fora do switch após a execução.
Quando o caso de correspondência, se precisamos continuar a executar a próxima instrução caso, você precisa adicionar aseguinte declaração.
fluxograma
Exemplos
#!/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 "没有匹配的条件" } }
O programa acima, a saída é:
数字 10
Em seguida olhamos para o uso de ocorrênciaseguinte:
#!/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 "没有匹配的条件" } }
O programa acima, a saída é:
数字 10 数字在列表中