Perl switch-Anweisung

Perl 条件语句Bedingte Anweisungen in Perl

Aswitch-Anweisung ermöglicht das Testen einer Variable auf Gleichheit mit mehreren Werten. Jeder Wert wird als Case bezeichnet, und die getestete Variable wird gegen jedenswitch casegeprüft.

Die Ausführung von switch case basiert auf demSwitch-Modul,SwitchStandardmäßig ist das Modul nicht installiert.

Installieren Sie das Modul Switch.pm

Mit CPAN installieren

Öffnen Sie ein Befehlsfenster, geben Sie den cpan-Befehl ein und geben Sie dann den Befehl install Switch ein:

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

Ubuntu mit apt-get installieren

sudo apt-get install libswitch-perl

Syntax

Das Syntaxformat lautet wie folgt:

Syntax

use Switch; switch(argument){ case 1 { print "Number 1" } case "a" { print "String a" } case [1..10,42] { print "Number in list" } case (\@array) { print "Number in array" } case /\w+/ { print "Regular expression matching pattern" } case qr/\w+/ { print "Regular expression matching pattern" } case (\%hash) { print "Hash" } case (\&sub) { print "Kindprozess" } else { print "Stimmt nicht mit vorherigen Bedingungen überein" } }

Die folgenden Regeln gelten für die switch-Anweisung:

  • switchJede Art von Skalarargument kann in den Klammern der Anweisung verwendet werden.
  • In einem switch kann es beliebig viele case-Anweisungen geben. Auf jedes case folgt ein Vergleichswert und ein Doppelpunkt.

  • Der Skalar nach der case-Anweisung wird mit dem Skalar der switch-Anweisung verglichen, um festzustellen, ob sie gleich sind.

  • Wenn die getestete Variable gleich der Konstante im case ist, werden die auf das case folgenden Anweisungen ausgeführt, bis sie aufbreakdie Anweisung trifft.

  • switchDie Anweisung kann ein optionaleselse, das am Ende steht, haben, und es wird ausgeführt, wenn kein case übereinstimmt.

  • Nachdem ein case übereinstimmt, wird der case-Anweisungsblock ausgeführt, und dann springt es aus der switch-Anweisung heraus.

  • Nachdem ein case übereinstimmt, müssen wir, wenn wir die folgenden case-Anweisungen weiter ausführen müssen, einenextAnweisung hinzufügen.

Flussdiagramm

Beispiel

#!/usr/bin/perl use Switch; $var = 10; @array = (10, 20, 30); %hash = ('key1' => 10, 'key2' => 20); switch($var){ case 10 { print "Zahl 10\n" } case "a" { print "Zeichenkette a" } case [1..10,42] { print "Zahl in Liste" } case (\@array) { print "Zahl im Array" } case (\%hash) { print "Im Hash" } else { print "Keine passende Bedingung" } }

Das Ausführen des obigen Programms erzeugt die folgende Ausgabe:

数字 10

Als Nächstes sehen wir uns die Verwendung vonnextanhand des folgenden Beispiels an:

Beispiel

#!/usr/bin/perl use Switch; $var = 10; @array = (10, 20, 30); %hash = ('key1' => 10, 'key2' => 20); switch($var){ case 10 { print "Zahl 10\n"; next; } # Ausführung nach Übereinstimmung fortsetzen case "a" { print "Zeichenkette a" } case [1..10,42] { print "Zahl in Liste" } case (\@array) { print "Zahl im Array" } case (\%hash) { print "Im Hash" } else { print "Keine passende Bedingung" } }

Das Ausführen des obigen Programms erzeugt die folgende Ausgabe:

数字 10
数字在列表中

Perl 条件语句Bedingte Anweisungen in Perl

Weitere Erweiterungen