sub extract_files { my $entity = shift; my $num_parts = $entity->parts; # how many mime parts? if ($num_parts) { # we have a multipart mime message print "Multiple subentities found - parsing\n"; my $message; foreach (1..$num_parts) { $message .= extract_files( $entity->parts($_ - 1) ); } return $message; } else { #Do some stuff.... } }