#! perl -slw use strict; my %patterns; open PAT, '<', 'patterns.txt' or die $!; chomp, undef $patterns{ $_ } while ; close PAT; open DAT, '<', 'data' or die $!; while( ) { my( $key, $v1, $v2 ) = m[(\S+\s+\S+)\s+(\S+)\s+(\S+)]; exists $patterns{ $key } and print "$key\t$v2"; } close DAT;