Hi Monks!
How could I combine or merge these two arrays based on
if
$ar_ref_1->[1] AND
$ar_ref_2->[0] match, thanks or the help!
use strict;
use warnings;
use Data::Dumper;
my $ar_ref_1 = [
[
'USER 1',
'12345',
'2009',
'X',
'0',
'8.00',
' ',
'1- E'
],
[
'USER 3',
'1234567',
'2009',
'X',
'0',
'8.00',
' ',
'3- E'
],
[
'USER 2',
'123456',
'2009',
'X',
'0',
'8.00',
' ',
'2- E'
],
[
'USER 5',
'123456789',
'2009',
'X',
'0',
'8.00',
' ',
'5- E'
],
[
'USER 4',
'12345678',
'2009',
'X',
'0',
'8.00',
' ',
'4- E'
],
];
my $ar_ref_2 = [
[
'1234567',
'12',
'0',
'2',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0'
],
[
'123456789',
'0998',
'2',
'2',
'3',
'0',
'0',
'0',
'0',
'0',
'0',
'0'
],
[
'123456',
'657',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0'
],
[
'12345678',
'8754',
'0',
'2',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0'
],
[
'12345',
'876',
'1',
'2',
'3',
'0',
'0',
'0',
'0',
'0',
'0',
'0'
],
];
for my $i (0..$#$ar_ref_1) {
for my $j (0..$#$ar_ref_2) {
if($ar_ref_1->[1] == $ar_ref_2->[0]){
push @{$ar_ref_1->[$i]}
+, @{ ref($ar_ref_2->[$i]) eq 'ARRAY' ?
+ $ar_ref_2->[$i] : [('-') x 3] };
}
}
}
print Dumper $ar_ref_1;
Here is what I am trying to get, I am sampling one element as an example:
[
'USER 4',
'12345678',
'2009',
'X',
'0',
'8.00',
' ',
'4- E'
'12345678', # I need to exclude the duplicated element out
+ as well, it’s a nightmare!
'8754',
'0',
'2',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0'
],
Thank you!