http://www.perlmonks.org?node_id=1217806

Arik123 has asked for the wisdom of the Perl Monks concerning the following question:

Consider the following code:

use Net::IMAP::Simple::SSL; use Email::MIME; my $imap = Net::IMAP::Simple::SSL -> new ('imap.gmail.com'); $imap -> login ("LOGIN\@gmail.com" => 'PASS'); my @unseen = reverse sort $imap->search_unseen; for my $i (@unseen) { my $msg = join '', @{$imap->get($i)}; unless (fork) { if (&process (Email::MIME->new (\$msg)) eq "notouch") { $imap->unsee ($i); exit; } } }

&process() should decide whether or not to mark the message as \Seen. however, it doesn't work. Whatever &process() returns, the message is marked as \Seen. I think it has to do with the exit() the child performes - maybe that forces the message to be \Seen.

Any solution? thanks!