gpt4 book ai didi

perl - 使用反引号而不是 system()

转载 作者:行者123 更新时间:2023-12-04 21:59:38 25 4
gpt4 key购买 nike

我有一个 perl 脚本,它使用 system() 调用另一个 perl 脚本

就像是:

my $returnval= system("perl", $path,$val1, $val2,@myarray);

因为 system() 只返回退出状态,但我想要脚本的输出我想使用反引号。

我尝试过这样的事情:
my $returnval = `$path`;

如何添加脚本应该接收的参数?

其他 perl 脚本的返回码应该是怎样的?此刻就像
exit ($myreturnedvalue);

(如何)是否可以返回多个值?

最佳答案

通过 shell 将数据从一个 perl 脚本移动到另一个不是最好的解决方案。你应该知道反引号或 qx()捕获打印到 STDOUT 的任何内容。使用 exit ($var)从其他脚本不太可能被正确捕获。您需要 print $var .但不要那样做。

相反,将其他脚本制作成模块并直接使用子例程。这是一个简单的例子:

在 bar.pm 中:

use strict;
use warnings;

package bar; # declare our package

sub fooz { # <--- Our target subroutine
my $in = shift; # passing the input
return $in * 5; # return value
}
1; # return value must be true

在 main.pl 中:
use strict;
use warnings;
use bar; # bar.pm must be in one path in @INC

my $foo = bar::fooz(12); # calling fooz from our other perl script
print "Foo is $foo\n";

还有很多东西要学,我建议你阅读 documentation.

关于perl - 使用反引号而不是 system(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10870591/

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