sub get_list {
return ("one", "two");
}
sub get_array {
my @a = ("one", "two");
# need to convert @a to list
return @a;
}
my $two = get_list(); # desired, assigns last item in list to scalar
my $count = get_array(); # evaluates array in scalar context, returning a count
在 get_array() 方法中,我已经创建了一个数组,但我想将它作为列表返回,以便它根据列表规则而不是数组规则进行分配。当然,数组通常会以更复杂的方式构建(不是直接来自列表)。
我曾尝试使用 map,希望它能返回一个值列表,但这给出了相同的结果。与拆分/合并相同。
return map { $_ } @a;
return split /,/, join(",", @a);
如何将数组转换为值列表?
最佳答案
函数可以使用wantarray确定他们所处的上下文并相应地返回一些东西:
sub get_array {
my @a = ("one", "two");
return wantarray ? @a : $a[-1];
}
关于perl - 将数组转换为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34685788/