$VERSION
=
'2.093'
;
sub
string()
{
my
$self
=
shift
;
$self
->head->string .
$self
->body->string;
}
sub
lines()
{
my
$self
=
shift
;
my
@lines
;
my
$file
= IO::Lines->new(\
@lines
);
$self
->
print
(
$file
);
wantarray
?
@lines
: \
@lines
;
}
sub
file()
{
my
$self
=
shift
;
my
@lines
;
my
$file
= IO::Lines->new(\
@lines
);
$self
->
print
(
$file
);
$file
->
seek
(0,0);
$file
;
}
sub
printStructure(;$$)
{
my
$self
=
shift
;
my
$indent
=
@_
==2 ?
pop
:
defined
$_
[0] && !
ref
$_
[0] ?
shift
:
''
;
my
$fh
=
@_
?
shift
:
select
;
my
$buffer
;
open
$fh
,
'>'
, \
$buffer
unless
defined
$fh
;
my
$subject
=
$self
->get(
'Subject'
) ||
''
;
$subject
=
": $subject"
if
length
$subject
;
my
$type
=
$self
->get(
'Content-Type'
, 0) ||
''
;
my
$size
=
$self
->size;
my
$deleted
=
$self
->label(
'deleted'
) ?
', deleted'
:
''
;
my
$text
=
"$indent$type$subject ($size bytes$deleted)\n"
;
ref
$fh
eq
'GLOB'
? (
print
$fh
$text
) :
$fh
->
print
(
$text
);
my
$body
=
$self
->body;
my
@parts
=
$body
->isNested ? (
$body
->nested)
:
$body
->isMultipart ?
$body
->parts
: ();
$_
->printStructure(
$fh
,
$indent
.
' '
)
for
@parts
;
$buffer
;
}
1;