调用函数的短语法(如果已定义)

时间:2012-09-04 10:16:43

标签: perl function shortcode defined

是否有更短的语法或运算符
defined $functionpointer ? $functionpointer->($value) : $value

我想要// - 运营商,以便我可以尽快写出来

$functionpointer //->() $value

或那个方向的任何东西

想要做的是写一个额外的方法,重载运算符等等

3 个答案:

答案 0 :(得分:3)

不,没有。但是,有关于介绍它的讨论:What operator should p5p use for safe dereferencing在PerlMonks。

答案 1 :(得分:3)

您可以用匿名常量函数替换$functionpointer,该函数返回您的默认值(在5.12.1中测试):

($functionpointer // sub {$default})->(@args)

这有点hackish,但它的确有效。 :)

答案 2 :(得分:2)

我认为与大多数语言相比,它已经非常简洁了。我不明白你希望通过使其更难辨认而实现的目标

我要做的一件事就是删除defined,留下

$functionpointer ? $functionpointer->($value) : $value

好像定义了$functionpointer并且它是一个有效的子程序引用它始终是真的