Perl switch-Anweisung
Testfall eineswitch - Anweisung ermöglicht eine Variable gleich dem mehrfachen Wert.Jeder Wert ist ein Fall genannt, und die Variable wird jedesSchaltergehäuse getestet werden überprüft werden.
Switch Executive Schaltergehäuse basiert auf dem Modul, Switch- Modul verwendetFilter :: Util :: RufenundText :: Balancedauszuführen, müssen beide Module installiert werden.
Grammatik
Die Syntax lautet wie folgt:
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 "不匹配之前的条件" } }
Im Folgenden sind die Regeln der switch-Anweisung:
- Klammernswitch - Anweisung kann in jeder Art von skalaren Parameter verwendet werden.
In einem Schalter können Sie eine beliebige Anzahl von Case-Anweisungen haben. Jeder Fall wird gefolgt von einem Wert mit einem Doppelpunkt zu vergleichen.
Scalar case-Anweisung, dann wird der skalare Anweisung wechseln, und bestimmt, ob oder nicht das gleiche.
Wenn die Variable getestet auf den Fall konstanter Zeit gleich ist, wird von einem Fall Anweisung folgt ausgeführt werden, bis er einebreak - Anweisung trifft.
switch - Anweisung kann eine optionale else haben,die Aussage in der endgültigen Oberfläche, wird die Anweisung in dem Fall ausgeführt keinen Fall überein.
Wenn der passende Fall führt Case-Anweisung Blockcode aus der Switch-Anweisung nach der Ausführung.
Wenn der passende Fall, wenn wir die nächste Case - Anweisung ausführen müssen , um fortzufahren, müssen Sie dienächste Anweisung hinzuzufügen.
Flussdiagramm
Beispiele
#!/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 "没有匹配的条件" } }
Das obige Programm, das Ausgabe ist:
数字 10
Als nächstes schauen wir auf die Verwendungnächste Instanz:
#!/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 "没有匹配的条件" } }
Das obige Programm, das Ausgabe ist:
数字 10 数字在列表中