📜  珀尔 | given-when 语句(1)

📅  最后修改于: 2023-12-03 15:27:07.242000             🧑  作者: Mango

珀尔 | Given-When 语句

珀尔 (Perl) 中的 Given-When 语句类似于其他语言中的 Switch 语句,但它提供了更多功能。

Given-When 语句的基本结构如下:

given ($variable) {
    when ($value1) {
        # 执行代码块1
    }
    when ($value2) {
        # 执行代码块2
    }
    default {
        # 执行默认代码块
    }
}

在上面的代码中,首先使用 given 关键字指定一个变量。接着使用 when 关键字和对应的比较值来定义一个或多个代码块。最后可以使用 default 关键字定义一个默认的代码块,它会在没有匹配的 when 语句时执行。

下面是一个示例:

use feature qw(switch);

my $name = "John";

given ($name) {
    when (/^J/i) { print "Name starts with J" }
    when (/^D/i) { print "Name starts with D" }
    default { print "Name does not start with J or D" }
}

在上面的代码中,使用 given 关键字指定一个字符串变量 $name。接着使用 when 关键字和正则表达式来判断这个字符串是否以 J 或 D 开头。最后使用 default 关键字来定义一个默认的代码块,它会在以上两个 when 语句都不匹配时执行。

除了上述基本结构,Given-When 语句还支持以下高级特性:

  1. 可以使用智能匹配
given ($name) {
    when ("John") { print "Name is John" }
    when ("Jane") { print "Name is Jane" }
    default { print "Name is not John or Jane" }
}
  1. 可以使用复杂的条件语句
given ($age) {
    when ($_ > 18 && $_ < 30) { print "Age is between 18 and 30" }
    when ($_ > 30 && $_ < 50) { print "Age is between 30 and 50" }
    default { print "Age is not in a valid range" }
}
  1. 可以使用代码块作为条件语句
given ($score) {
    when { $_ > 90 } { print "Score is greater than 90" }
    when { $_ > 80 } { print "Score is greater than 80" }
    default { print "Score is less than 80" }
}

Given-When 语句是 Perl 中非常有用且灵活的语句,它可以轻松完成多种场景下的选择和分支控制。