#!/usr/bin/perl use warnings; use strict; my $NumbersList = 'NumbersList'; my $LookingForTheseNumbersList = 'LookingForTheseNumbersList'; open LOOKINGFORTHESENUMBERSLIST, '<', $LookingForTheseNumbersList or die "Cannot open '$LookingForTheseNumbersList' because: $!"; my %data; while ( ) { if ( /^(\d+)/ ) { $data{ $1 } = []; } } close LOOKINGFORTHESENUMBERSLIST; open NUMBERSLIST, '<', $NumbersList or die "Cannot open '$NumbersList' because: $!"; while ( ) { if ( /^(\d+)\s+(\d+)/ && exists $data{ $1 } ) { push @{ $data{ $1 } }, $2; } } close NUMBERSLIST; for my $number ( sort { $a <=> $b } keys %data ) { print "$number $_\n" for @{ $data{ $number } }; } exit 0;