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

是否可以有条件地将选项传递给perl中的方法?

发布时间:2020-12-15 21:58:36 所属栏目:大数据 来源:网络整理
导读:与 this question regarding Ruby类似,我想有条件地将参数传递给方法.目前,我将其配置如下: my $recs = $harvester-listAllRecords( metadataPrefix = 'marc21',metadataHandler = 'MARC::File::SAX',set = 'pd',from = $from,until = $until,); 我想要的是
与 this question regarding Ruby类似,我想有条件地将参数传递给方法.目前,我将其配置如下:
my $recs = $harvester->listAllRecords(
    metadataPrefix => 'marc21',metadataHandler => 'MARC::File::SAX',set => 'pd',from => $from,until => $until,);

我想要的是能够有条件地传递from和/或until参数,具体取决于之前的代码.这在语法上不正确,但是像这样:

from => $from if ($from),until => $until if ($until),

或这个:

if ($from) {from => $from,}
if ($until) {until => $until,}

这是可能的,如果可以的话,我该怎么做呢?

解决方法

你可以使用带有列表操作数的三元?:运算符:
my $recs = $harvester->listAllRecords(
    metadataPrefix => 'marc21',$from ? (from => $from) : (),$until ? (until => $until) : (),);

它也可能值得了解“conditional list include” pseudo-operator,在这种情况下会起作用

...
(from => $from) x !!$from,(until => $until) x !!defined($until),...

但对于大多数人来说,三元运算符表达式可能更容易阅读.

(编辑:李大同)

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

    推荐文章
      热点阅读