mail::box::tie::hash(3pm) [debian man page]
Mail::Box::Tie::HASH(3pm) User Contributed Perl Documentation Mail::Box::Tie::HASH(3pm) 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
Constructors TIEHASH('Mail::Box::Tie::HASH', FOLDER) Connects the FOLDER object to a HASH. example: my $mgr = Mail::Box::Manager->new; my $folder = $mgr->open(access => 'rw'); tie my(%inbox), 'Mail::Box::Tie::HASH', $folder; Tied Interface $obj->CLEAR() Remove the contents of the hash. This is not really possible, but all the messages will be flagged for deletion. example: %inbox = (); %inbox = ($msg->messageId, $msg); #before adding msg $obj->DELETE(MESSAGE-ID) Remove the message with the specified MESSAGE-ID. example: delete $inbox{$msgid}; $obj->EXISTS(MESSAGE-ID) Check whether a message with a certain MESSAGE-ID exists. example: if(exists $inbox{$msgid}) ... $obj->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. example: my $msg = $inbox{$msgid}; if($inbox{$msgid}->isDummy) ... $obj->FIRSTKEY() See NEXTKEY(). $obj->NEXTKEY(PREVIOUS) FIRSTKEY() returns the first message-id/message pair from the folder, and NEXTKEY returns the message-id/message pair for the next message, in the order in which the message is stored in the folder. Messages flagged for deletion will not be returned. See the Mail::Box::messages() method of the folder type for more information about the folder message order. example: foreach my $msgid (keys %inbox) ... foreach my $msg (values %inbox) ... while(my ($msgid, $msg) = each %inbox) { $msg->print unless $msg->isDeleted; } $obj->STORE(undef, MESSAGE) Store a message in the folder. The key must be "undef", because the message-id of the specified message is taken. This is shown in the first example. However, as you see, it is a bit complicated to specify "undef", therefore the string "undef" is accepted as well. The message may be converted into something which can be stored in the folder type which is at stake. The added instance is returned. example: $inbox{ (undef) } = $msg; $inbox{undef} = $msg; SEE ALSO
This module is part of Mail-Box distribution version 2.105, built on May 07, 2012. Website: http://perl.overmeer.net/mailbox/ LICENSE
Copyrights 2001-2012 by [Mark Overmeer]. For other contributors see ChangeLog. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html perl v5.14.2 2012-05-07 Mail::Box::Tie::HASH(3pm)
Check Out this Related Man Page
Mail::Box::Locker::FcntlLock(3pm) User Contributed Perl Documentation Mail::Box::Locker::FcntlLock(3pm) NAME
Mail::Box::Locker::FcntlLock - lock a folder using File::FcntlLock INHERITANCE
Mail::Box::Locker::FcntlLock is a Mail::Box::Locker is a Mail::Reporter SYNOPSIS
See Mail::Box::Locker DESCRIPTION
This locker object is uses File::FcntlLock, and was contributed by Jim in Aus. It is close to Mail::Box::Locker::POSIX, but does work on more systems, for instance Darwin. You will need to install File::FcntlLock separately: there is no dependency to it by the MailBox distribution. METHODS
Constructors Mail::Box::Locker::FcntlLock->new(OPTIONS) -Option --Defined in --Default expires Mail::Box::Locker 1 hour file Mail::Box::Locker undef folder Mail::Box::Locker <undef> log Mail::Reporter 'WARNINGS' method Mail::Box::Locker FcntlLock timeout Mail::Box::Locker 10 seconds trace Mail::Reporter 'WARNINGS' expires => SECONDS file => FILENAME folder => FOLDER log => LEVEL method => STRING|CLASS|ARRAY timeout => SECONDS|'NOTIMEOUT' trace => LEVEL The Locker $obj->filename([FILENAME]) See "The Locker" in Mail::Box::Locker $obj->folder([FOLDER]) See "The Locker" in Mail::Box::Locker $obj->name() See "The Locker" in Mail::Box::Locker Locking $obj->hasLock() See "Locking" in Mail::Box::Locker $obj->isLocked() $obj->lock() $obj->unlock() See "Locking" in Mail::Box::Locker Error handling $obj->AUTOLOAD() See "Error handling" in Mail::Reporter $obj->addReport(OBJECT) See "Error handling" in Mail::Reporter $obj->defaultTrace([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK]) Mail::Box::Locker::FcntlLock->defaultTrace([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK]) See "Error handling" in Mail::Reporter $obj->errors() See "Error handling" in Mail::Reporter $obj->log([LEVEL [,STRINGS]]) Mail::Box::Locker::FcntlLock->log([LEVEL [,STRINGS]]) See "Error handling" in Mail::Reporter $obj->logPriority(LEVEL) Mail::Box::Locker::FcntlLock->logPriority(LEVEL) See "Error handling" in Mail::Reporter $obj->logSettings() See "Error handling" in Mail::Reporter $obj->notImplemented() See "Error handling" in Mail::Reporter $obj->report([LEVEL]) See "Error handling" in Mail::Reporter $obj->reportAll([LEVEL]) See "Error handling" in Mail::Reporter $obj->trace([LEVEL]) See "Error handling" in Mail::Reporter $obj->warnings() See "Error handling" in Mail::Reporter Cleanup $obj->DESTROY() See "Cleanup" in Mail::Box::Locker $obj->inGlobalDestruction() See "Cleanup" in Mail::Reporter DIAGNOSTICS
Warning: Folder $folder already lockf'd Error: Package $package does not implement $method. Fatal error: the specific package (or one of its superclasses) does not implement this method where it should. This message means that some other related classes do implement this method however the class at hand does not. Probably you should investigate this and probably inform the author of the package. Error: Unable to check lock file $filename for $folder: $! To check whether the filename is used to flock a folder, the file must be opened. Apparently this fails, which does not mean that the folder is locked neither that it is unlocked. Error: Unable to open FcntlLock lock file $filename for $folder: $! For FcntlLock style locking, a folder it must be opened, which does not succeed for the specified reason. Error: Will never get a FcntlLock lock at $filename for $folder: $! Tried to lock the folder, but it did not succeed. The error code received from the OS indicates that it will not succeed ever, so we do not need to try again. SEE ALSO
This module is part of Mail-Box distribution version 2.105, built on May 07, 2012. Website: http://perl.overmeer.net/mailbox/ LICENSE
Copyrights 2001-2012 by [Mark Overmeer]. For other contributors see ChangeLog. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html perl v5.14.2 2012-05-07 Mail::Box::Locker::FcntlLock(3pm)