Perl switch 文

Perl 条件语句Perl 条件文

1 つのswitchステートメントでは、変数が複数の値のいずれかに等しい場合をテストできます。各値は case と呼ばれ、テストされる変数はそれぞれについてswitch case検査が行われます。

switch case の実行はSwitchモジュールに基づいており、Switchモジュールはデフォルトではインストールされていません。

Switch.pm モジュールのインストール

CPAN を使用してインストール

コマンドウィンドウを開き、cpan コマンドを入力し、次に install Switch コマンドを入力します:

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

Ubuntu では apt-get を使用してインストール

sudo apt-get install libswitch-perl

構文

構文形式は次のとおりです:

構文

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 "以前の条件に一致しない" } }

以下は switch 文の規則です:

  • switchswitch 文の括弧内には任意の型のスカラーパラメータを使用できます。
  • 1 つの switch 内には任意の数の case 文を置くことができます。各 case の後には、比較する値とコロンが続きます。

  • case 文の後のスカラーは switch 文のスカラーと比較され、等しいかどうかが判断されます。

  • テスト対象の変数が case 内の定数と等しい場合、case の後に続く文は、breakその文に遭遇するまで実行されます。

  • switchswitch 文にはオプションを設定できますelse、そのオプションは最後に置かれ、すべての case が一致しない場合に実行されます。

  • case が一致した後、case 文ブロックのコードが実行され、実行後に switch 文から抜けます。

  • case が一致した後、引き続き次の case 文を実行する必要がある場合は、next文を追加する必要があります。

フローチャート

例

#!/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 "一致する条件がありません" } }

上記のプログラムを実行すると、出力結果は次のとおりです:

数字 10

次に、nextを使用した例を見てみましょう:

例

#!/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 "一致する条件がありません" } }

上記のプログラムを実行すると、出力結果は次のとおりです:

数字 10
数字在列表中

Perl 条件语句Perl 条件文

その他の拡張