加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 21:17:40 所属栏目:大数据 来源:网络整理
导读:我想通过几个参数,其中一个是可选的,一个函数。我知道的唯一方法是使用列表(@)作为参数。因此,它没有内容或1个元素(永远不会undef),所以我可以使用以下代码: sub someFunction($$@) { my ( $oblig_param1,$oblig_param2,$option_param ) = @_; ...} 这
我想通过几个参数,其中一个是可选的,一个函数。我知道的唯一方法是使用列表(@)作为参数。因此,它没有内容或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的内置函数提供隐含的上下文强制参数)。它们不应该被用作一个机制来检查该函数是用正确的数字和类型的参数调用的。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读