実はもっと簡単な方法があった
パッケージ内関数検索や、eval なんてしなくていいんですね。
sub dispatcher { my $callee = shift; my $param = shift; my $pkg = caller; $pkg->can($callee) or die "Illeagal function called.\n"; return $pkg->$callee($param); } 1;
これで一発でした。
オブジェクト作ってメソッド化すると、BBS とかの Form のコマンドで分岐する奴を一行で書けるようになりますね。
いやはや、ごろごろしているうちに、時代は進んでいました(w