perl - Perl `defined` 函数复杂度
问题描述
我有一个 perl 脚本,它接受参数列表(强制和非强制)。基于这些 args 确定脚本的流程。我感到困惑的是,如果在脚本中多次使用 arg(以 switch 的形式)来确定流程(大部分时间用于if
循环),那么哪个更好
if(defined arg){}
或
my $switch = defined arg ? 1:0; if($switch){}
解决方案
defined
已经返回真或假。使用 的结果defined
为真案例选择一个真值,为假案例选择一个假值只是额外的工作。这完成了您需要的所有工作,无需额外工作:
if( defined $foo ) { ... }
有时我想打印那个真值或假值,所以我会使用双键(否定,再否定)来规范化值:
!! defined $foo
推荐阅读
- android - android studio中的颤振错误:找不到jdk
- windows - 创建实例时,Ansible 控制器节点无法使用 WinRM 连接到 EC2 实例
- ios - 单击 UITableViewCell 时从底部开始的半屏详细信息视图
- sockets - 为什么 Boost ip::udp::socket 不是线程安全的?
- docker - Keycloak docker服务无法连接到数据库
- azure-cosmosdb - Cosmos DB (Mongo API) 集合混乱
- shell - 我可以对多个值进行 grep
- azure - 如何在 Azure Data Lake Gen2 中并行读写文件?
- sql - 使用 DBT 查找两个表的 INTERSECT
- python - 如何在python中获得字典中值之间的最小差异