将数组转换为列表

Des*_*tar 2 arrays perl scalar list

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
Run Code Online (Sandbox Code Playgroud)

在get_array()方法中,我已经创建了一个数组,但我希望将其作为列表返回,以便根据列表规则而不是数组规则进行分配.当然,数组通常以更复杂的方式构建(不是直接从列表中构建).

我已经尝试过使用map,希望它会返回一个值列表,但这会给出相同的结果.与拆分/加入相同.

return map { $_ } @a;
return split /,/, join(",", @a);
Run Code Online (Sandbox Code Playgroud)

如何将数组转换为值列表?

Sea*_*ean 5

函数可以使用wantarray来确定它们所处的上下文并相应地返回一些内容:

sub get_array {
    my @a = ("one", "two");
    return wantarray ? @a : $a[-1];
}
Run Code Online (Sandbox Code Playgroud)