use autodie qw(open close); open my $fip, '<', 'file-1'; open my $fop, '<', 'file-2'; my $lookup = ''; while (my $line = <$fop>) { chomp $line; vec( $lookup, $line, 1 } = 1; } close $fop; while (my $line = <$fip>) { my @token = split(/-/, $line, 2); if ( vec( $lookup, $token[0], 1 } ) { print $line; } } close $fip;