istruzione switch Perl
Test case di un'istruzioneswitch consente una variabile pari al valore multiplo.Ogni valore è chiamato un caso, e la variabile sarà testata ciascuncaso interruttore da controllare.
Interruttore caso interruttore esecutivo si basa sul modulo, modulo switchutilizzaFilter :: Util :: ChiamaeText :: Balancedper eseguire, entrambi i moduli devono essere installati.
grammatica
La sintassi è la seguente:
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 "不匹配之前的条件" } }
Di seguito sono le regole della istruzione switch:
- staffepassare istruzione può essere utilizzato in qualsiasi tipo di parametri scalari.
In un interruttore si può avere un numero qualsiasi di istruzioni case. Ogni caso è seguito da un valore da confrontare con i due punti.
caso scalare dichiarazione, allora lo scalare passerà dichiarazione, e determina o meno la stessa.
Quando la variabile che testato è uguale al caso di costante di tempo, seguita da un'istruzione caso verrà eseguita, finché non incontra un'istruzionebreak.
switch può avere un altro optional,l'affermazione contenuta nella superficie finale, la dichiarazione viene eseguita nel caso non corrisponde nessun caso.
Quando il caso di corrispondenza, blocco case dichiarazione esegue il codice fuori dell'istruzione switch dopo l'esecuzione.
Quando il caso di corrispondenza, se abbiamo bisogno di continuare a eseguire l'istruzione case successiva, è necessario aggiungere l'istruzionesuccessiva.
diagramma di flusso
Esempi
#!/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 "没有匹配的条件" } }
Il programma precedente, l'uscita è:
数字 10
Prossimo guardiamo l'utilizzo di istanzasuccessiva:
#!/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 "没有匹配的条件" } }
Il programma precedente, l'uscita è:
数字 10 数字在列表中