What is exact function/purpose of * in front of _fact and how it can be equivalently written?
sub fact {
my ($n) = @_;
local *_fact = sub {
my ($n, $prod) = @_;
return $prod if $n == 0;
return _fact($n-1, $n*$prod);
};
return _fact($n, 1);
}
fact($n);
Check typeglob aliases
Example above should be written using anonymous subroutine/closure: