我正在查看是否有perl简写,似乎总是是perl简写,如果定义了值则返回。我正在考虑常见的情况,我需要检查一些哈希以查看是否存在某些内容,如果存在则返回,否则生成该值。我可以这样做:
$element = %seen_elements{$key};
return $element if defined $element;
#element doesn't exist so make it
return generate_element($key, $seen_elements);
是否有第二行的简写,这避免了我必须两次引用元素?大多数语言我都不会问,但是在perl中有如此多的语法糖我很好奇,如果他们已经为一个小的但是常见的用例做了一个。
答案 0 :(得分:4)
是的,有点儿。您可以使用//
,logical defined or。
sub foo {
return $seen_elements{$key} // generate_element($key, $seen_elements);
}
这个东西就像||
(或),但是测试定义而不是 truethiness ,所以它会返回一个空字符串,但不是undef
。