Добро пожаловать в переполнение стека. Вы должны опубликовать то, что вы уже пробовали :) тогда люди поймут и помогут / решат вашу проблему.
Если я понял вашу проблему, давайте рассмотрим, у вас есть массив массивов, как показано ниже. Мы должны сравнить оба массива до указанного значения индекса. Поэтому я использовал имя переменной с именем $matchedColums
. Затем мы должны сделать вложенный цикл для сравнения обоих значений массива.
Итак, что я сделал, так это то, что я получил значения из данного индекса и сравнил оба значения и поместил их в другой массив. Тогда вы можете получить новый массив ..
use warnings;
use strict;
use Data::Dumper;
my $array = [["0","1","3","some text"], ["0","1","6","more text"], ["1","2","0","and more"]];
my $array1 = [["0","1","3","where missing on page2"], ["0","1","6","to do with it"], ["1","2","0","to read on tuesday"]];
my $matchedColums = 3;
my $mc = $matchedColums-1;
my @finalArray ;
for my $a1 (@{$array}){ #Iterating loop for array elements.
my $matchA1 = join ( "" , @{$a1}[0..$mc] ); # joining the elements from the given index
my @a2String;
for my $a2 (@{$array1}){
my $matchA2 = join ( "" , @{$a2}[0..$mc] );
if ($matchA1 == $matchA2) {
@a2String = @{$a2}[$mc+1..$#$a2];
last;
}
}
my @fn = (@{$a1}, @a2String);
push @finalArray, \@fn; #pushing it as an array reference.
}
print Dumper \@finalArray;