如何将可选参数传递给Perl函数?

前端之家收集整理的这篇文章主要介绍了如何将可选参数传递给Perl函数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想通过几个参数,其中一个是可选的,一个函数。我知道的唯一方法是使用列表(@)作为参数。因此,它没有内容或1个元素(永远不会undef),所以我可以使用以下代码
sub someFunction($$@) {
    my ( $oblig_param1,$oblig_param2,$option_param ) = @_;
    ...
}

这段代码有效,但我觉得这可能不是最好的解决方法
还有其他方法吗?
谢谢。

解决方法

您可以在原型中使用分号来指示所需参数的结束:
sub someFunction($$;$) {
  my ( $oblig_param1,$option_param ) = @_;
  ...
}

的;在@或%之前是可选的,根据the docs,“gobble up everything”。

编辑:由于DVK在评论中指出(而TLP在另一个答案中强调),您可能最好只是避免原型:

sub someFunction {
  my ( $oblig_param1,$option_param ) = @_;
  ...
}

Perl的原型有它们的用途(主要是为Perl的内置函数提供隐含的上下文强制参数)。它们不应该被用作一个机制来检查该函数是用正确的数字和类型的参数调用的。

猜你在找的Perl相关文章