首页 > 解决方案 > Perl `defined` 函数复杂度

问题描述

我有一个 perl 脚本,它接受参数列表(强制和非强制)。基于这些 args 确定脚本的流程。我感到困惑的是,如果在脚本中多次使用 arg(以 switch 的形式)来确定流程(大部分时间用于if循环),那么哪个更好 if(defined arg){}my $switch = defined arg ? 1:0; if($switch){}

标签: perl

解决方案


defined已经返回真或假。使用 的结果defined为真案例选择一个真值,为假案例选择一个假值只是额外的工作。这完成了您需要的所有工作,无需额外工作:

if( defined $foo ) { ... }

有时我想打印那个真值或假值,所以我会使用双键(否定,再否定)来规范化值:

 !! defined $foo

推荐阅读