use classA; use classH; sub what_does_it_return { return rand(1) > 0.5 ? bless( [], 'classA' ) : bless( {}, 'classH' ); } my $o = what_does_it_return( ... ); $o->method( ... );