4

是否有更短的语法或运算符

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

我想要像//-Operator这样的东西,这样我就可以很快写

$functionpointer //->() $value

或者那个方向的任何东西

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

4

3 回答 3

3

不,没有。不过,有关于引入它的讨论:在PerlMonks,p5p 应该使用什么运算符来安全解除引用

于 2012-09-04T10:20:15.730 回答
3

您可以将 替换为$functionpointer返回默认值的匿名常量函数,如下所示(在 5.12.1 中测试):

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

这有点骇人听闻,但它确实有效。:)

于 2012-09-04T10:25:31.503 回答
2

我认为与大多数语言相比,它已经相当简洁了。我不明白您希望通过使其更不清晰来实现什么

我会做的一件事是删除defined, 离开

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

好像$functionpointer已定义并且是有效的子例程引用,它将始终为真

于 2012-09-04T13:36:42.877 回答