perl -e "sub fact{$x=$_;$x<0?'E':(map{$x*=$_}1..$x-1)[-1]||1} print map{fact($_),qq(\n)}@ARGV " 0 1 3 -1 1 1 6 E