while (length($num) > 1) { my $sum = 0; map { $sum += $_ } split '', $num; $num = $sum; } #### 1 while $num =~ s/(\d)(\d)/$1 + $2/e;