让我重新开始。我有两个数组是两个文本文件的行。我正在对第一个数组进行一些处理:
找到包含STRING1的行,并将其删除,然后删除它。这已经完成了。
找到下一行,然后插入整个第二个数组,以
当我能做的时候更多2.: - )
答案 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方式,它并不难,只是一些简单的数组操作。