Krambambuli has asked for the wisdom of the Perl Monks concerning the following question:
And this is the code used:Rate mime_parser email_simple mail_internet mime_parser 39.9/s -- -89% -99% email_simple 355/s 788% -- -91% mail_internet 3846/s 9531% 985%
The clear winner seems to be MIME::Parser - despite the fact that I'd have bet on Email::Simple before seeing the numbers.#!/usr/bin/perl use strict; use warnings; use Benchmark qw( :all ); use Mail::Internet; use Email::Simple; use MIME::Parser; my @message; push (@message, $_) while <>; my $message = join( '', @message ); cmpthese( 1000, { 'mail_internet' => \&_mail_internet, 'email_simple' => \&_email_simple, 'mime_parser' => \&_mime_parser, } ); exit 0; sub _mail_internet { my $mail_internet = Mail::Internet->new( \@message ); my $body = join( '', @{ $mail_internet->body } ); } sub _email_simple { my $email_simple = Email::Simple->new($message); my $body = $email_simple->body; } sub _mime_parser { my $parser = new MIME::Parser; my $entity = $parser->parse_data($message); my $body_handle = $entity->bodyhandle; my $body = $body_handle->as_string }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Parsing mail messages
by xdg (Monsignor) on Feb 17, 2007 at 13:45 UTC | |
by Krambambuli (Curate) on Feb 19, 2007 at 09:12 UTC | |
|
Re: Parsing mail messages
by Anonymous Monk on Feb 17, 2007 at 13:00 UTC |