use integer; my $n1 = "758475567567567834"; my $n2 = "5676757345657438"; print "$n1*$n2=",mul($n1,$n2),"\n"; sub mul($$) { my ($x,$y) = @_; my @a = reverse split(//,$x); my @b = reverse split(//,$y); my @c; for (my $i=0;$i<@a;$i++) { for (my $j=0;$j<@b;$j++) { my $carry = $a[$i]*$b[$j]; for (my $k = $i+$j;$carry;$k++) { $c[$k] += $carry; $carry = $c[$k]/10; $c[$k] -= $carry*10; } } } return join("",reverse @c); }