Code Generation
file: examples/Gorshle.pm1: package Gorshle; 2: 3: sub import { 4: my $caller=caller(); 5: die "do not call from main" if $caller eq 'main'; 6: (my $meth=$caller)=~s/::/_/g; 7: my $code=" 8: package ".$caller."::Gorshle; 9: use base 'Gorshle'; 10: sub ".lc($meth)." { return '$caller' }"; 11: eval $code; 12: die $@ if $@; 13: } 14: 15: sub new { return bless {},shift } 16: sub voofen { print "voofen!\n" } 17: 1;