It was Friday, February 21, 2003 when Dan Muey took the soap box, saying: : : > : > It was Friday, February 21, 2003 when Dan Muey took the soap : > box, saying: : > : Hello list, : > : : > : What is the best way to get the headers of an email into a : > hash and also the text part of the body into an array or variable? : > : > Mail::Internet->new() accepts a list reference full of lines : > in an email message. This is nice, since getting a list from : > STDIN is not difficult. : > : > my $mail = Mail::Internet->new( [ <STDIN> ] ); : > my $headers = $mail->head->header_hashref; : > my $subject = $headers->{Subject}; : : Thanks again Casey here's what I tried :: : : : #!/usr/bin/perl : : use Mail::Internet; : my $mail = Mail::Internet->new( [ <STDIN> ] ); : my $headers = $mail->head->header_hashref; : my $subject = $headers->{Subject}; : : print $subject; : : OUTPUT : ARRAY(0x80da1ec) : : : If I change the my $subject line to : : my @subject = @{${$headers}{'Subject'}}; # or otherwsie do it in list context it works : OUTPUT : mail parse test : : I tried doing : my ($subject) = $headers->{Subject}; : And other ways of doing it list context all return : ARRAY(0x80da1ec) : : Any ideas??
Oh yes, I forgot about this. Email can have multiple headers of the same name, so this is Mail::Header making sure those types of headers are not clobbered. You fixed it correctly above, but if you want an easier approach, this is what I would go with. my $subject = $headers->{Subject}->[0]; Casey West -- Corollary to Godwin's Law: "As a p5p thread grows longer, the probability of a bad pun approaches one. Once this occurs, that thread is over, and whoever inflicted the pun is beaten to within an inch of his life." -- Michael G. Schwern -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]