# not tested of course my @message; my $io = io('mail_file')->backwards->chomp; while (my $line = $io->getline) { unshift @message, $line; last if($line =~ m/$message_start_pattern/); } # @message now contains all lines of the # last message in correct order for(@message){ last if($_ eq "Content-Type: text/html;"); print "$_\n"; }