#!/usr/bin/perl

require 5.00397;
use strict;
use Net::POP3;
use Mail::Folder::Mbox;

my $server = 'mailhost';
my $mailbox = 'mailbox';
my $user = 'YOUR_POP_ACCOUNT_NAME';
my $pass = 'YOUR_POP_ACCOUNT_PASSWORD';

my @deletes;

autoflush STDOUT 1;

print "opening $mailbox\n";
my $folder = Mail::Folder->new('mbox', $mailbox, Create => 1, NotMUA => 1)
  or die "can't create local mailfolder object: $!";

print("connecting to $server\n");
my $pop = Net::POP3->new($server, Debug => 0)
  or die "can't connect to $server\n";

print "logging in\n";
my $qtymsgs = $pop->login($user, $pass);

if (defined($qtymsgs)) {
  if ($qtymsgs) {
    print "retrieving $qtymsgs message", ($qtymsgs > 1)?'s':'', ": ";
    for my $msgnum (1 .. $qtymsgs) {
      if (my $msg = $pop->get($msgnum)) {
	print '.';
	pop(@{$msg}) if ($msg->[$#{$msg}] eq "\n");
	my $mref = new Mail::Internet($msg, Modify => 0);
	$folder->append_message($mref);
	push(@deletes, $msgnum);
      } else {
	print 'x';
      }
    }
    print("\n");
    $folder->sync if (defined(@deletes));
  } else { print("no messages\n"); }
} else { warn("can't log into $server\n"); }

$folder->close;

print "deleting messages on $server\n" if (@deletes);
map { $pop->delete($_) } @deletes;

print "disconnecting\n";
$pop->quit;


syntax highlighted by Code2HTML, v. 0.9.1