use Class::Prototyped; my $p = Class::Prototyped->new(); $p->reflect->addSlot( sub1 => sub { print "this is sub1" } ); $p->sub1 # prints "this is sub1";