局所化した関数を再帰処理させるってできますか?
sub foo(){
  my $var = sub(){
          $var->();
         }
}
みたいな感じですが。