my $sep = '##'; my $sep_len = length($sep); my $last_pos = index($str, $sep); for (;;) { my $pos = index($str, '##', $last_pos + $sep_len); my $rec; if ($pos < 0) { $rec = substr($str, $last_pos); last if not length $rec; } else { $rec = substr($str, $last_pos, $pos-$last_pos); $last_pos = $pos; } my $rid = substr($rec, 19, 10); print "$rid: " . ($keeplist{$rid} ? 'y' : 'n') . "\n"; }