我有一个函数(我们称之为foo($array_reference, ...)
),它需要其他参数中的数组引用。我希望foo
将数组引用从传递给它的参数列表中直接移到数组中,而不必将它作为数组引用移出,然后单独将其转换为数组。如何将通过数组引用直接移入数组?
我想应该是这样的:
my @bar = @{shift};
我不想要什么,但我现在坚持:
my $bar = shift;
my @bar = @{$bar}
后一种方法废物线,浪费内存,并导致我以热烈的激情憎恨这类Perl代码的作者。请帮助?
你如何看待浪费内存? – Ether 2010-10-20 17:25:47
事实上,为了编写可读的代码,我浪费了那几行,并写了我的$ bar = shift; my @bar = @ $ bar; 经验告诉我不要写perl golf,至少在生产代码中。 – jira 2010-10-20 20:36:58
@Ether:浪费内存导致您有一个额外的变量($ bar)实例化,您永远不需要。 @jira:它很丑,可读性较差。您正在创建您永远不需要的额外变量,并将应该只需要一行的任务分解为两部分。我将所有复杂的语句分隔成多个语句/行,但这只有在[i]必要时才应该完成[/ i]。把简单的任务分解成单独的语句是浪费的,可读性较差,应该避免IMO。 – Eli 2010-10-21 20:39:33