#! /usr/bin/perl use strict; use warnings; my @file1 = ( 'A101 something 123', 'A102 else 456', 'A103 it 789', 'A104 the 012' ); my @file2 = ( 'A102 else 456', 'A103 it 789' ); my %prod_id; foreach my $line ( @file1 ) { my( $num, $name, $id ) = (split /\s+/, $line); $prod_id{$num} = $id; } foreach my $line ( @file2 ) { my( $num, $name ) = (split /\s+/, $line); print "$num\t$name\t$prod_id{$num}\n"; }