The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Mail::Cclient qw(set_callback);

# Criteria examples
#
#	'12,23,45,16,19 SUBJECT "perl"'
#       'FLAGGED SINCE 1-Feb-1994 NOT FROM "SMITH"'
#       'ALL FROM "hdias" NOT SUBJECT "spam" NOT TEXT "bug"'
#       'OR FROM "hdias" SUBJECT "perl"'
#       'FROM "hdias" NOT FROM "smith" OR SUBJECT "perl" TO "cpan"'
#       'FROM "hdias"'
#       'ANSWERED TO "malcolm"'
#

--- Example 1

my @sequence = ();
set_callback(
	'searched' => sub {
		my ($stream, $number) = @_;
		push(@sequence, $number);
	} );


my $criteria = "ALL FROM \"hdias\"";
$cclient->search(
	SEARCH => $criteria);

# results via searched callback

for(@sequence) {
	print "$_\n";
}

--- Example 2

my @sequence = ();
set_callback(
	'searched' => sub {
		my ($stream, $number) = @_;
		push(@sequence, $number); } );

$cclient->search(
	SEARCH => "FLAGGED SINCE 1-Feb-1994 NOT FROM \"SMITH\"",
	FLAG   => ["uid"]);

# results via searched callback

for(@sequence) {
        print "$_\n";
}

--- Example 3

my @sequence = ();
set_callback(
	'searched' => sub {
		my ($stream, $number) = @_;
		push(@sequence, $number); } );

$cclient->search(
	SEARCH => "FROM \"hdias\"",
	FLAG   => "uid");

# results via searched callback

for(@sequence) {
	print "$_\n";
}

--- Example 4

my @sequence = ();
set_callback(
	'searched' => sub {
		my ($stream, $number) = @_;
		push(@sequence, $number); } );

$cclient->search(
	SEARCH => "ANSWERED TO \"malcolm\"",
	FLAG   => ["uid","noprefetch"]);

# results via searched callback

for(@sequence) {
	print "$_\n";
}