sub which_obj { # examine the calling sub's 'wantarray': defined( (caller(1))[5] ) ? $_[0]->copy : $_[0] } #### sub foo { . . . my $obj = $self->which_obj; . . . }