The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Mail::Box::Tie::HASH - access an existing message folder as a hash

SYNOPSIS

 tie my(%inbox), 'Mail::Box::Tie::HASH', $folder;

 foreach my $msgid (keys %inbox)
 {   print $inbox{$msgid};
     delete $inbox{$msgid};
 }

 $inbox{$msg->messageId} = $msg;

DESCRIPTION

Certainly when you look at a folder as being a set of related messages based on message-id, it is logical to access the folder through a hash.

For a tied hash, the message-id is used as the key. The message-id is usually unique, but when two or more instances of the same message are in the same folder, one will be flagged for deletion and the other will be returned.

This implementation uses basic folder access routines which are related to the message-id.

METHODS

Initiation

tie HASH, 'Mail::Box::Tie::HASH', FOLDER

Connects the FOLDER object to a HASH.

Examples:

 my $mgr    = Mail::Box::Manager->new;
 my $folder = $mgr->open(access => 'rw');
 tie my(%inbox), 'Mail::Box::Tie::HASH', $folder;

Tied Interface

DELETE MESSAGE-ID

Remove the message with the specified MESSAGE-ID.

Examples:

 %inbox = ();
 %inbox = ($msg->messageId, $msg); #before adding msg
EXISTS MESSAGE-ID

Check whether a message with a certain MESSAGE-ID exists.

Examples:

 if(exists $inbox{$msgid}) ...
FETCH MESSAGEID

Get the message with the specified id. The returned message may be a dummy if message thread detection is used. Returns undef when there is no message with the specified id.

Examples:

 foreach my $msgid (keys %inbox) ...
 foreach my $msg (values %inbox) ...

 while(my ($msgid, $msg) = each %inbox) {
    $msg->print unless $msg->deleted;
 }

SEE ALSO

A good start to read is Mail::Box-Overview. More documentation and a mailinglist are available from the project's website at http://perl.overmeer.net/mailbox/.

AUTHOR

Written by Mark Overmeer (mark@overmeer.net) with the help of many. See the ChangeLog for details.

VERSION

This code is beta, version 2.027.

Copyright (c) 2001-2002 by the authors. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.