如果它的数组在一行中,则Perl返回标量值或第一个元素

时间:2014-09-17 14:23:21

标签: perl

$scalar = function();

如果函数返回标量它没关系,但是如果返回数组我需要从数组中指定第一个元素。如何在Perl中用一行写它?

编辑: 是否可能没有这样的变量:

call_another_func(function());

2 个答案:

答案 0 :(得分:5)

如果它返回元素列表,则将其放入parens中

my ($scalar) = function();

同样的事情,采取第一个列表元素,

my $scalar = (function())[0];

或取消引用,如果它返回数组引用,

my ($scalar) = @{ function() };

答案 1 :(得分:1)

Subs无法返回数组。他们只能返回零个或多个标量的列表。以下内容将function返回的第一个标量作为参数传递给call_another_func

call_another_func( ( function() )[0] );