Hallo Philipp,
sub body {
my ($self, $value) = @_;
if (@_ > 1) { ### setting body line(s)...
croak "you cannot use body() to set the encoded contents\n";
»»
Ich habe mal in einer älteren Version dieses Moduls nachgesehen, und da stand
<cite>
=item body [VALUE]
I<Instance method.>
Get or set the body, as an array of lines. This should be regarded
as a read-only data structure: changing its contents will have
unpredictable results (you can, of course, make your own copy,
and work with that).
</cite>
bzw.
<cite>
sub body {
my ($self, $value) = @_;
if (@_ > 1) { # setting body line(s)...
return $self->bodyhandle(new MIME::Body::Scalar $value);
}
else { # getting body lines...
return ($self->bodyhandle ? [$self->bodyhandle->as_lines] : []);
}
}
</cite>
zeimlich frech dieses Modul, wo ich doch nur den Text einer Mail kurz nachträglich ändern will, da ich dessen Inhalt beim build noch nicht kenne.
Jemand Kommentar oder gar Lösung???
Jetzt könntest Du natürlich dieses
$self->bodyhandle(new MIME::Body::Scalar $value);
nachbilden, bzw.. verwenden. Allerdings denke ich, daß der Author dieses Moduls sicherlich gute Gründe gehabt hat, den Body nicht mehr so ändern zu lassen.
Du könntest ja das build so lange hinauszögern, bis Du weißt, was Du eigentlich haben willst. Die Informationen, die Du für ein build brauchst, speicherst Du dann gleich in ein passendes Hash, welches Du dann am Ende der Methode build übergibst.
Grüße
Klaus