Проблема с Perl Email: MIME - PullRequest
0 голосов
/ 07 ноября 2010

У меня проблемы с использованием модуля Email: MIME в perl.Вероятно, потому, что я использую это неправильно, но найти примеры для его использования сложно.Я почти уверен, что должен использовать скаляр от полного сообщения в качестве входных данных, но он не работает.Вот мой код и мой вывод

Код:

#!/usr/bin/perl

use Net::POP3;
use Email::MIME;
local $| = 1;

my $pop = Net::POP3->new('pop.mail.server');

print "Logging in....";
if ($pop->login('username','password')) {
 print "logged in successfully\n";
 my $msgs = $pop->list;
 my @keys = keys(%$msgs);
 my $msgr = $pop->get($keys[1]); #Selects a more or less random email for testing
 my $msg = join("",@$msgr);

 my $parsed = Email::MIME->new($msg);
 foreach my $key (keys %$parsed) {print $key.":".$parsed{$key}."\n";}
}

Вывод:

Logging in....logged in successfully
body:
mycrlf:
body_raw:
parts:
ct:
header:

Ответы [ 2 ]

2 голосов
/ 07 ноября 2010

Всегда use strict; и use warnings;.Это немедленно укажет на ошибку:

Global symbol "%parsed" requires explicit package name at p line 21.

Строка 21 должна быть:

foreach my $key (keys %$parsed) {print $key.":".$parsed->{$key}."\n";}
0 голосов
/ 07 ноября 2010

Я думаю, что должно быть $parsed->{ $key } в вашем заявлении о печати

...