use strict; use Mail::Util (); defined $ARGV[0] && -f $ARGV[0] or die 'invalid inbox.'; foreach (Mail::Util::read_mbox($ARGV[0])) { open(PIPE, "|procmail -m $ENV{HOME}/.procmailrc") or die ("cannot start filtering : $!"); map {print PIPE} @$_; close(PIPE); }