Code Generation
file: examples/Gorshle.pm
1: 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;
file: examples/025_gorshle.pl
1: package Waak;
2: use rlib '.';
3: use Gorshle;
4:
5: my $waak=Waak::Gorshle->new;
6: print $waak->waak,"\n";
7: $waak->voofen;