sub __func__ { #handle @arglist if () { return %myhash; } else if () { return $myscalar; } else { return @mylist; } } sub func() { #some input &__func__(@arglist); #how can i handle different return values of __func__? #some other stuff }