use Sub::Recursive; my $recursive = recursive { ... $REC->(...) ... };