while () { if (/^From /) { if (/2003/ || $mailsStarted) { $mails[$#mails + 1] = $_; $mailsStarted = 1; } } elsif ( $mailsStarted ) { $mails[$#mails] .= $_; } print $OUT, @mails; }