Kha*_*hai 1 parameters bash perl module function
Perl 模块中的函数有 3 个参数。第一个参数的值将确定其他参数的值并将它们返回给调用者。它的定义如下:
package MyModule;
sub MyFunction
{
my $var_0 = $_[0];
my $var_1;
my $var_2;
if ($var_0 =~ /WA/) {
$var_1 = "Olympia";
$var_2 = "Population is 53,000";
}
elsif ($var_0 =~ /OR/) {
$var_1 = "Salem";
$var_2 = "Population is 172,000";
}
$_[1] = $var_1;
$_[2] = $var_2;
return 0; # no error
}
Run Code Online (Sandbox Code Playgroud)
从 bash shell 脚本调用此函数:
VAL=`perl -I. -MMyModule -e 'print MyModule::MyFunction("WA")'`
echo $VAL
Run Code Online (Sandbox Code Playgroud)
问题:VAL 只存储最后一个变量或$var_2 的值。
问题:如何从 $var_1 和 $var_2 检索值,以便稍后在此 bash 脚本中使用?(假设来自 perl 函数的代码无法修改)。感谢您的帮助。
您的函数正在修改其参数#2 #3的值,因此您可以将变量传递给它并打印它们:
perl -l -I. -MMyModule -e 'MyModule::MyFunction("WA",$a,$b); print $a; print $b;'
Run Code Online (Sandbox Code Playgroud)