File 1 Looks like this:- DAVID 31 DAVID 29 DAVID 41 File 2 looks like this:- >DAVID 40 40 40 40 40 40 40 40 40 33 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 >DAVID 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 66 40 40 6 40 40 40 40 40 40 40 40 40 40 40 29 40 40 40 6 40 >DAVID 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 99 40 40 40 40 40 40 4 40 40 #### RESULT FILE:- DAVID 31 40 DAVID 29 40 # This line is not printed bcoz hash can take only single key DAVID 41 40 # This line is not printed bcoz hash can take only single key #### #!/usr/bin/perl -w use strict; my %href; my $fn = ; open(FH, "$fn") || die "Cannot open file"; while () { chomp($_); $href{$1} = $2 if $_ =~ /(\S+)\s+(\S+)/; } while (my ($key, $value) = each(%href)) { #print $key. ", ". $value."\n"; } open(FD,"'; while ( ) { chomp; next unless ( s{ \A (\S+) \s+ (?= \d ) }{}xms and exists( $href{$1} )); my $name = $1; my @numbers = split /\D+/; my $one_number = $numbers[$href{$name} - 1]; if ( $one_number >= 20 ) { print "$name\t\t$href{$name}\t$one_number\n"; } } close FD;