Loading

perl语言中的三目运算符和do代码块

我有这么一个需求,根据学生考试成绩进行ABC划分,比如80分以上为A,60-80分为B,60分一下为C

我们能够相当的最简单的方式就是通过if判断并赋值的方式实现,如下代码:

$ perl -E '
my $a;
my $b=67;
if($b > 80){
  $a="A";
} elsif ($b > 60 and $b <80 ){
  $a="B";
} else {
  $a="C";
}
print $a."\n";'
B

可以通过do代码块来实现上述代码功能

 $ perl -E '
> my $b=67;
> my $a = do{if($b > 80){$a="A";} 
> elsif ($b > 60 and $b <80 ){$a="B";} 
> else { $a="C";}};
> print $a."\n"'
B

我们还可以通过三目运算符的方式来实现,需要注意的是三目运算不仅仅是 expr ? when_true : when_false

perl -E '
my $a;
my $b = 67;
$name = ($b > 80)           ? "A" :
        ($b >60 and $b <80) ? "B" :
        ($b < 60)           ? "C" : "";
print $name."\n";'
B
posted @ 2025-10-12 20:42  李行行  阅读(9)  评论(0)    收藏  举报