in reply to Recursion Alternatives?

Your Cfactorial case didn't make real use of a closure. You should take out the "my" in the sub and do
$iClosure = shift;
Your benchmark is not fair to Closure because you are repeatedly creating subroutines. The following would be better:
our $iGlobal; our $closure_sub = Cfactorial(); timethese (1000000, { 'Recursion' => 'Rfactorial(30)', 'Global' => 'Gfactorial(30)', 'Lexical' => 'Lfactorial(30)', 'Closure' => '&{$closure_sub}(30)', } );
When I do this I find that the times for Closure, Global, and Lexical are virtually identical.