
- Perl基礎
- Perl - 首頁
- Perl - 簡介
- Perl - 環境
- Perl - 語法概述
- Perl - 資料型別
- Perl - 變數
- Perl - 標量
- Perl - 陣列
- Perl - 雜湊表
- Perl - IF...ELSE
- Perl - 迴圈
- Perl - 運算子
- Perl - 日期和時間
- Perl - 子程式
- Perl - 引用
- Perl - 格式
- Perl - 檔案I/O
- Perl - 目錄
- Perl - 錯誤處理
- Perl - 特殊變數
- Perl - 編碼規範
- Perl - 正則表示式
- Perl - 傳送郵件
- Perl高階
- Perl - 套接字程式設計
- Perl - 面向物件
- Perl - 資料庫訪問
- Perl - CGI程式設計
- Perl - 包和模組
- Perl - 程序管理
- Perl - 嵌入式文件
- Perl - 函式引用
- Perl有用資源
- Perl - 問答
- Perl - 快速指南
- Perl - 有用資源
- Perl - 討論
Perl switch語句
switch 語句允許將變數與其值列表進行相等性測試。每個值稱為一個case,系統會檢查正在切換的變數的每個switch case。
switch case的實現依賴於Switch模組,而Switch模組是使用Filter::Util::Call和Text::Balanced實現的,需要安裝這兩個模組。
語法
Perl程式語言中switch語句的概要如下:
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 list" } case /\w+/ { print "pattern" } case qr/\w+/ { print "pattern" } case (\%hash) { print "entry in hash" } case (\&sub) { print "arg to subroutine" } else { print "previous case not true" } }
switch語句適用以下規則:
switch語句接受一個任何型別的單個標量引數,用括號指定。
該值後面是一個程式碼塊,該程式碼塊可以包含一個或多個case語句,後面跟著Perl語句塊。
case語句接受一個單個標量引數,並選擇case引數和當前switch值之間的適當匹配型別。
如果匹配成功,則執行與case語句關聯的必需程式碼塊。
switch語句可以有一個可選的else case,它必須出現在switch的末尾。預設case可用於在沒有匹配任何case時執行任務。
如果case程式碼塊執行一個非目標的next,控制會立即轉移到case語句之後的語句(即通常是另一個case),而不是switch程式碼塊之外。
並非每個case都需要包含next。如果沒有出現next,控制流將不會貫穿後續的case。
流程圖

示例
#!/usr/local/bin/perl use Switch; $var = 10; @array = (10, 20, 30); %hash = ('key1' => 10, 'key2' => 20); switch($var) { case 10 { print "number 100\n" } case "a" { print "string a" } case [1..10,42] { print "number in list" } case (\@array) { print "number in list" } case (\%hash) { print "entry in hash" } else { print "previous case not true" } }
執行上述程式碼時,會產生以下結果:
number 100
貫穿通常在switch語句中是個壞主意。但是,現在考慮一個貫穿case,我們將使用next將控制轉移到下一個匹配的case,在本例中是一個列表:
#!/usr/local/bin/perl use Switch; $var = 10; @array = (10, 20, 30); %hash = ('key1' => 10, 'key2' => 20); switch($var) { case 10 { print "number 100\n"; next; } case "a" { print "string a" } case [1..10,42] { print "number in list" } case (\@array) { print "number in list" } case (\%hash) { print "entry in hash" } else { print "previous case not true" } }
執行上述程式碼時,會產生以下結果:
number 100 number in list
perl_conditions.htm
廣告