【发布时间】:2016-02-13 04:53:12
【问题描述】:
我正在尝试从子例程返回一个匿名数组,但是,当转储返回的变量时,我只看到一个值(我期待两个)。
这是我的代码:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my $fruits_ref = generate_fruits();
print "Fruits: " . Dumper($fruits_ref) . "\n";
sub generate_fruits
{
return ("Apple", "Orange");
}
这个输出:
Fruits: $VAR1 = 'Orange';
如何让子例程返回该数组 ref?
【问题讨论】:
-
您返回的不是数组,而是列表。一个数组是
["Apple", "Orange"] -
是否可以返回整个列表?我该如何解压清单?
-
$fruits_ref = [ generate_fruits() ] -
当您将列表传递给标量上下文时,它成为它的最后一个元素。要传递到列表上下文,您可以执行
my @fruits = generate_fruits();。但这可能不是您需要的 - 您似乎需要参考。为此,只需使用方括号。哦,另一种选择是my $fruits_ref = [generate_fruits()]; -
谢谢@arkadiy。如果您发布答案,我很乐意接受。
标签: perl