"0" values in Mail::Message::Field::Full

Eugene L Schulman <[email protected]> Wed, 15 Jun 2005 11:45:25 -0400
Newsgroups gmane.comp.lang.perl.modules.mail-box
Message-ID <OFADEBED1A.AFE58FD9-ON85257021.0055A844-85257021.00568E9B@us.ibm.com>
Mr. Overmeer and team,


Using Mail-Box v2.060
Mail::Message::Field::Full apparently does not correctly handle "0" as a 
field value.  See below.

                Respectfully Yours,
                Gene Schulman

---

Eugene L. Schulman
Senior Consultant and Technical Architect
IBM Global Services



my ($xfield,$xvalue)=($headerline->{'Field'}->[0] , 
$headerline->{'Value'}->[0]);
# KLUDGE- Mail::Message::Field::Full appears to have a bug with a Value = 
"0".  Solution, add a leading space, which will get stripped later.
#$xvalue=" ".$xvalue if $xvalue eq "0";
$ff=Mail::Message::Field::Full->new($xfield => $xvalue);


When $xvalue above is "0", MMFF_body does not exist. 

  DB<8> x $ff
0  Mail::Message::Field::Unstructured=HASH(0x284c64c)
   'MMFF_name' => 'X-ML-App-Sender-ID'
   'MR_log' => 4
   'MR_trace' => 4


This causes other breakage, i.e. Mail::Message->print method will fail.
Died at E:/Perl/site/lib/Mail/Message/Field/Full.pm line 382, <GEN0> line 
55.
 at E:/Perl/site/lib/Mail/Message/Field/Full.pm line 382
 
Mail::Message::Field::Full::produceBody('Mail::Message::Field::Unstructured=HASH(0x284c64c)') 
called at E:/Perl/site/lib/Mail/Message/Field/Full.pm line 136
 
Mail::Message::Field::Full::foldedBody('Mail::Message::Field::Unstructured=HASH(0x284c64c)') 
called at E:/Perl/site/lib/Mail/Message/Field/Full.pm line 99
 
Mail::Message::Field::Full::folded('Mail::Message::Field::Unstructured=HASH(0x284c64c)') 
called at E:/Perl/site/lib/Mail/Message/Field.pm line 73
 
Mail::Message::Field::print('Mail::Message::Field::Unstructured=HASH(0x284c64c)', 
'main::STDOUT') called at E:/Perl/site/lib/Mail/Message/Head/Complete.pm 
line 300
 
Mail::Message::Head::Complete::print('Mail::Message::Head::Complete=HASH(0x26d1d40)', 
'main::STDOUT') called at E:/Perl/site/lib/Mail/Message.pm line 134
        Mail::Message::print('Mail::Message=HASH(0x28532a0)') called at 
SMTP-connector.pl line 267
        main::message_build('HASH(0x276166c)') called at SMTP-connector.pl 
line 323
void context return from IO::Handle::DESTROY