More helpful things metaclasses can do
my $instance = Some::Class->new;
my $copy = $instance->meta->clone_object($instance);
- Add methods to a single instance
my $instance = Some::Class->new;
my $new_class = $instance->meta->create_anon_class(
superclasses => 'Some::Class',
);
$new_class->add_method( foo => sub { 'it worked' } );
$new_class->rebless_instance($instance);
# also possible
my $new_instance = $new_class->name->new( ... );
- Add roles to a single instance
my $foo = Some::Class->new;
$foo->does('Soem::Role'); # false
Some::Role->meta->apply($foo);
$foo->does('Some::Role'); # true