sub gcd { my ($a, $b, $c); ($a, $b) = @_; if ($a == 0) { $c = $a; } else { my (@a, @b); my $n; $a[0] = $a; $b[0] = $b; $n = 0; while(1) { if ($b[$n] == 0) { $c = $a[$n]; last; } $a[$n+1] = $b[$n]; $b[$n+1] = $a[$n] % $b[$n]; $n++; } } return $c; } print gcd(99, 22);