在Perl中快速运行一个函数

时间:2014-01-09 22:53:24

标签: perl

我有这样的功能。

sub main {
    my $item;
    $send = item_id();
    $send .= item_id2();
    $send .= jobproccess();
    send_idea($send) && send_idea($send) && send_idea($send);
}

所以你可以看到,它多次运行send_idea函数。 我怎么能在一行中做到这一点。

send_idea($ send)x 4&&

有没有办法做到这一点。

1 个答案:

答案 0 :(得分:8)

您可以创建一个简单的循环

send_idea($send) for 1 .. 3;

的后脚本版本
for (1 .. 3) {
    send_idea($send);
}

但当然,这里有一个隐藏的动态。 &&运算符不只是将命令链接在一起。它检查子例程send_idea()的返回值,如果其中一个失败,则其他子程序不会被执行。因此,如果您希望包含该功能,则需要类似

的内容
for (1 .. 3) {
    send_idea($send) or last;
}

这也可以写成

send_idea($send) or last for 1 .. 3;

在您的问题中,您的陈述与&&相关联,但实际上它应该只是三个单独的陈述,除非您想要包含此检查。

send_idea($send);
send_idea($send);
send_idea($send);

您的标题“快速”提及,这与在代码中看起来很好的方式运行函数非常不同。如果速度是你想要的,那么你在调用程序结束时所做的任何事情都会对结果产生微不足道的影响。