将中间元素插入到数组中

时间:2015-07-12 00:34:04

标签: perl

在数组的每个现有元素之间插入元素的最佳方法是什么。到目前为止,我所做的最好的是:

my @array = ( 1 , 'foo', { }, [ ] );
my @new_array;
push @new_array, $_, ', ' for @array;
pop @new_array;

实际上,@array包含HTML :: Element对象和传递给HTML :: Element splice_content方法的字符串的混合,目的是用逗号分隔部分元素内容。

2 个答案:

答案 0 :(得分:3)

怎么样:

my @array = ( 1 , 'foo', { }, [ ] );
(undef, my @new_array) = map {; ', ' => $_ } @array;

这利用了鲜为人知的事实,即您可以在列表分配的左侧使用undef来表示您不关心该元素。 (map {;中的分号是为了让解析器理解为块而不是hashref。)

答案 1 :(得分:3)

我想我会使用map代替for循环,但保留pop

my @new_array = map { $_, ', ' } @array;
pop @new_array;