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
使意图明确,这很好。但是,如果您想要看起来更像魔术的东西,您可以将其称为“列出数组”以迷惑并打动人,那么可以用切片来做到这一点:
return @a[0..$#a];
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句