gpt4 book ai didi

arrays - 将数组值从一个 Perl 脚本返回到另一个 Perl 脚本

转载 作者:行者123 更新时间:2023-12-05 08:16:55 27 4
gpt4 key购买 nike

我有 2 个脚本,比如 main_script.pl 和 secondary_script.pl

首先,我运行 main_script.pl,它调用 seconday_script.pl

main_script.pl 的代码如下所示:

#!/usr/bin/perl
use strict;
use warnings;

my $var1 = "val_1";
my $var2 = "val_2";

my $sec_script = "/home/shared/Vinod/Perl_Test/secondary_script.pl";
my $result = `perl $sec_script $var1 $var2`;

print "Result:$result\n";

secondary_script.pl

#!/usr/bin/perl
use strict;
use warnings;

my $arg1 = $ARGV[0];
my $arg2 = $ARGV[1];

....
....
# DO SOME OPEARTION BY USING THE ARGUMENTS PASSED FROM main_script.pl
# FINALLY CREATE AN ARRAY @data

print Dumper(\@data);

在这里,我可以在数组@data 中生成输出。但是我如何将这个 @data 值传递给 main_script.pl 以便它存储在 result 中。

因为在 main_script.pl 中,我已将结果声明为 scalar 变量。我来自 secondary_script.pl 的数据值为 array,那么我应该将结果作为 array variable 吗?以及如何捕获 main_script.pl 中的数据?

最佳答案

在辅助脚本中,您可以使用已知的分隔符连接值,比如 |。在 het 主脚本中,您可以拆分在该分隔符上收到的字符串以获取数组。

想知道这是如何工作的:

use Data::Dumper;

my @arr = ("1", "3", "", "5");
my $result = join ('|', @arr); # in secondary script. print to stdout
print STDERR Dumper(split( /\|/, $result)); # in main script: undo join

有一个极端情况:如果数组的第一个或最后一个字符串是空字符串,它将丢失,您必须采取一些额外的技巧来解决这个问题。

关于arrays - 将数组值从一个 Perl 脚本返回到另一个 Perl 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62283469/

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