gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 13:14:03 24 4
gpt4 key购买 nike

this question regarding Ruby相似,我想有条件地将参数传递给方法。目前,我将其配置如下:

my $recs = $harvester->listAllRecords(
metadataPrefix => 'marc21',
metadataHandler => 'MARC::File::SAX',
set => 'pd',
from => $from,
until => $until,
);

我想要的是能够根据之前的代码有条件地传递from和/或直到参数。这在语法上是不正确的,但类似以下内容:
from => $from if ($from),
until => $until if ($until),

或这个:
if ($from) {from => $from,}
if ($until) {until => $until,}

这有可能吗?如果可以,我将如何去做呢?

最佳答案

您可以将三元?:运算符与列表操作数一起使用:

my $recs = $harvester->listAllRecords(
metadataPrefix => 'marc21',
metadataHandler => 'MARC::File::SAX',
set => 'pd',

$from ? (from => $from) : (),
$until ? (until => $until) : (),
);

也许还需要了解 "conditional list include" pseudo-operator,在这种情况下,它像
...
(from => $from) x !!$from,
(until => $until) x !!defined($until),
...

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

关于perl - 是否可以有条件地将选项传递给perl中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14385769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com