foreach my $part (@parts) { next unless defined $part->head; my $head_string = $part->head->as_string; next unless $head_string =~ m!text/plain|alternative|image|octet|gif!i; my $body_string = $part->bodyhandle->as_string; my @part = ($head_string, $body_string); push(@text, \@part) if $head_string =~ m!text/plain|alternative!i; push(@images, \@part) if $head_string =~ m!image|octet|gif!i; } $thing->{'images'} = \@images; $thing->{'text'} = \@text; return($thing); }