my @data1 = ( "a 1 a", "a 2 T", "a 3 C" ); my @data2 = ( "a 2 Y", "a 3 R", "a 4 Q", "b 5 R" ); for ( @data2 ) { my ($match) = $_ =~ /^(\w\s+\d)/; if ( grep { /$match/ } @data1 ) { print "$_\n"; } } #### $ perl compare.pl a 2 Y a 3 R #### my @results; for my $elem ( @data1 ) { my ($match) = $elem =~ /(\w\s+\d)/; @results = grep { /$match/ } @data2; } print "$_\n" for @results; #### $ perl compare.pl a 3 R