问题描述
我有一个perl脚本,它接受参数列表(强制性和非强制性)。基于这些参数,确定脚本的流程。我感到困惑的是,如果脚本中多次使用arg(以switch的形式)来确定流量(if
循环中大部分时间),那么哪个更好呢?
if(defined arg){}
要么
my $switch = defined arg ? 1:0; if($switch){}
解决方法
defined
已经返回true或false。使用defined
的结果为真个案选择一个真值,为假个案选择一个假值只是多余的工作。这可以完成您需要的所有工作,而无需额外的工作:
if( defined $foo ) { ... }
有时我想打印该真或假值,所以我将使用双引号(取反,然后再次取反)对值进行归一化:
!! defined $foo