1sub tak { 2 local($x, $y, $z) = @_; 3 if (!($y < $x)) { 4 return $z; 5 } else { 6 return &tak(&tak($x - 1, $y, $z), 7 &tak($y - 1, $z, $x), 8 &tak($z - 1, $x, $y)); 9 } 10} 11&tak(18, 9, 0); 12