anarion@foo:~$ perl -le 'sub a{my$c=pop;print $c;$c*a($c-1)unless!$c}print a(--$ARGV[0])' 5 4 3 2 1 0 24 anarion@foo:~$ perl -le 'sub a{my$c=pop;print $c;$c*a($c-1)if$c}print a(--$ARGV[0])' 5 4 3 2 1 0 0