Perl instrukcja switch
sprawdzian oświadczeniePrzełącznik umożliwia zmienną równą wartości wielokrotnej.Każda wartość nazywana jest to przypadek, a zmienna będzie testowany każdyprzypadek switch do sprawdzenia.
Przełącznik przypadku przełącznika wykonawczy jest oparty na module, moduł przełącznikakorzystaFilter :: Util :: CalliText :: Balancedwykonać oba moduły muszą być zainstalowane.
gramatyka
Składnia jest następująca:
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 "不匹配之前的条件" } }
Poniżej przedstawiono zasady instrukcji switch:
- Wspornikiprzełączania instrukcja może być stosowany w dowolnym rodzaju parametrów skalarnych.
W przełączniku można mieć dowolną liczbę sprawozdań przypadków. Każdy przypadek jest po wartości do porównania z dwukropkiem.
Oświadczenie Skalar, wówczas skalar włączy oświadczenie, i określa, czy nie to samo.
Podczas badania zmienna istota jest równa przypadku stałego czasu, po którym następuje stwierdzenie przypadku będzie wykonana, aż napotka instrukcjęprzerwania.
Instrukcjaswitch może mieć opcjonalny indziej,oświadczenie w końcowej powierzchni, instrukcja jest wykonywana w przypadku nie odpowiada żadnej sprawy.
Gdy dopasowanie przypadku, blok case wykonuje kod z instrukcji switch po wykonaniu.
Kiedy sprawa dopasowania, jeśli musimy kontynuować wykonać następną instrukcję case, trzeba dodaćkolejny oświadczenie.
schemat blokowy
Przykłady
#!/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 "没有匹配的条件" } }
Powyższy program, wyjście jest:
数字 10
Następnie spojrzeć na wykorzystaniukolejnej instancji:
#!/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 "没有匹配的条件" } }
Powyższy program, wyjście jest:
数字 10 数字在列表中