将数组插入另一个数组(perl)

时间:2013-10-29 22:59:12

标签: arrays perl

让我重新开始。我有两个数组是两个文本文件的行。我正在对第一个数组进行一些处理:

  1. 找到包含STRING1的行,并将其删除,然后删除它。这已经完成了。

  2. 找到下一行,然后插入整个第二个数组,以

  3. 之后的行开头
  4. 当我能做的时候更多2.: - )

3 个答案:

答案 0 :(得分:0)

您可以使用splice将数组插入另一个数组:

#!/usr/bin/perl
use warnings;
use strict;

my @a=qw(a1 a2 a3 a4 <pre> a5 a6); # Let @a be the 1st array
my @b=qw(b1 b2 b3);                # Let @b be the 2nd array

my $index_a; # We will store here the index of the <pre> element from the 1st array
for (0..$#a) { # We iterate through all @a elements to find the position of <pre>
    if ($a[$_] eq '<pre>') {
        $index_a=$_;
        last;
    }
}
if (!defined $index_a) { # Simple validation that we did found a <pre> element
    die "<pre> not found";
}
splice(@a,$index_a,1,@b); # We insert the elements of @b into @a using splice
print join(' ',@a); # This will print "a1 a2 a3 a4 b1 b2 b3 a5 a6"

答案 1 :(得分:0)

我不确定你的确切问题是什么,但如果我理解的话。

@array1 =(x, y, <pre>, c, d, e);
@array2 = (f, g, h);
@output = (c, d, e, f, g, h) 

If this is what you want

$element = shift (@array1);
while ($element ne '<pre>') {
      $element = shift (@array1);
}

@output = (@array1, @array2);

答案 2 :(得分:0)

嗯,我很难理解你的意思。似乎@sam和@psxls有不同的输出并理解你的问题。但如果是我,我将使用perl readline函数来直接处理文件splice.Any方式,它并不难,只是一些简单的数组操作。