【发布时间】:2019-08-13 21:00:22
【问题描述】:
我试图从子程序中调用多个变量,但是当我尝试打印时,它只打印一个变量。
在 python 中,脚本将是 f=mode()[0] 和 b=mode()[1],它可以工作。
子程序文件 a.pl
sub mode() {
my ($f, $b);
$f=41;
$b=2;
return ($f,$b);
}
还有另一个调用 a.pl 的文件
use strict;
use warnings;
require 'a.pl';
my ($f,$b);
$f= mode(0);
$b= mode(1);
print "$f\n";
print "$b\n";
问题是它只为 f 和 b 打印 2。
【问题讨论】:
-
@Shawn 没有;在标量上下文中,没有列表。当 sub 调用具有标量上下文时,
return ($f, $b)中的逗号运算符处于标量上下文中,并且它丢弃其左操作数,使 sub 只返回$b。
标签: perl