#!/usr/bin/env perl use strict; use warnings; use Inline::Files; my %match; ++$match{substr $_, 0, 3} while ; while () { print if $match{substr +(split)[1], 0, 3}; } __MATCH_DATA__ ABCD12 XYZ13 EFGT45 UVWZ34 TSR78 __PARSE_DATA__ ID121 ABC14 ID122 EFG87 ID145 XYZ43 ID157 TSR11 ID181 ABC31 ID962 YTS27 ID529 EFG56 ID684 TSR07 ID921 BAMD80