perl是否具有返回语法?

时间:2016-01-14 16:45:07

标签: perl

我正在查看是否有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中有如此多的语法糖我很好奇,如果他们已经为一个小的但是常见的用例做了一个。

1 个答案:

答案 0 :(得分:4)

是的,有点儿。您可以使用//logical defined or

sub foo {
  return $seen_elements{$key} // generate_element($key, $seen_elements);
}

这个东西就像||),但是测试定义而不是 truethiness ,所以它会返回一个空字符串,但不是undef