use Object::Util; my $cloned_object = $existing_object->$_clone(%extra_parameters); #### $cloned_object->$_extend({ my_new_method => sub { my $self = shift; print "yay!\n"; }, }); $cloned_object->my_new_method(); # says "yay!"