use strict; use warnings; use Data::Dumper; open my $firstFH, q{<}, \ < ) { chomp; my( $col1, $lastVal ) = ( split m{;} )[ 0, -1 ]; $arr1Order{ $col1 } = $recCt ++; push @arr1, $lastVal; } close $firstFH or die qq{close: < HEREDOC: $!\n}; open my $secondFH, q{<}, \ < ) { chomp; my( $col1, $lastVal ) = ( split m{;} )[ 0, -1 ]; $arr2[ $arr1Order{ $col1 } ] = $lastVal; } close $secondFH or die qq{close: < HEREDOC: $!\n}; print Data::Dumper->Dumpxs( [ \ @arr1, \ @arr2 ], [ qw{ *arr1 *arr2 } ] ); print q{[} . join( q{; }, @arr1 ) . qq{]\n[} . join( q{; }, @arr2 ) . qq{]\n};