Salve, sto cercando di ricavare le nuove email non lette da gmail con perl, il codice è questo:

codice:
#!/usr/bin/perl
use strict;
use Mail::IMAPClient;
use IO::Socket::SSL;

my $username = 'myemail@gmail.com'; 
my $password = 'mypasswd'; 

my $socket = IO::Socket::SSL->new(
		PeerAddr => 'gmail-imap.l.google.com',
		PeerPort => 993
	) or die "socket(): $@";

my $client = Mail::IMAPClient->new(
		Socket   => $socket,		
		User     => $username,
		Password => $password,
		Uid => 1,
 	) or die "new(): $@";

if ($client->IsAuthenticated()) {
	my $msgct;

	$client->select("INBOX");
	$msgct = $client->unseen_count||'0';
	print "Email unread: $msgct\n";

	my @unread = $client->unseen or warn "Could not find unseen msgs: $@\n";

	foreach (@unread) {
                print "$@\n";
		print $_ . " - " . $client->fetch($_) . "\n";
	}
}
$client->logout();
ma come output mi restituisce:

codice:
king@homepc:~$ ./script.pl 
Email unread: 3
12730 - 
5 BAD Could not parse command
12740 - 
6 BAD Could not parse command
12746 - 
7 BAD Could not parse command
king@homepc:~$ ./script.pl
il pratica ci sono dei problemi con il fetch, ma non riesco a capire perché.
Qualcuno sa darmi un consiglio ?