在数组的每个现有元素之间插入元素的最佳方法是什么。到目前为止,我所做的最好的是:
my @array = ( 1 , 'foo', { }, [ ] );
my @new_array;
push @new_array, $_, ', ' for @array;
pop @new_array;
实际上,@array
包含HTML :: Element对象和传递给HTML :: Element splice_content
方法的字符串的混合,目的是用逗号分隔部分元素内容。
答案 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;