while () { if ( /^##/ ) { my $rid = substr($buffer, 19, 10); $rid =~ s/\s*$//g; print $buffer if $keeplist{$rid}; $buffer = ''; } $buffer .= $_; }