Input: 4 tom 332211 harry 112233 ryan 445566 john 334455 jay harry ryan kelly john Output: Not found harry=112233 ryan=445566 Not found Code: use strict; use warnings; use Data::Dumper; my %phone_num; while (my $line = ) { my $name; my $phone; next unless ($name, $phone) = $line =~/^\s*([a-zA-Z]+)\s+(\d+)*/; if (defined $phone) # A new phone book entry { $phone_num{$name} = $phone; } else # Just a name. { if ($phone_num{$name}) { print "$name=$phone_num{$name}\n"; } else { print "Not found\n"; } } }