sub a{if(my$l=pop){a(@_[0,2,1],$l-1);print"Move disc $l from $_[0] to $_[2] ";a(@_[1,0,2],$l-1);}}a 'A'..'C',pop;