$_=23232363283842232; while($_) { unshift @a, sprintf"%06d", $_%1e6; $_=int($_/1e6); } $a[0]%=1e6; print@a Result: D:\>perl -le "$_=23232363283842232;while($_) { unshift@a,sprintf\"%06d\",$_%1e6; $_=int($_/1e6); } $a[0]%=1e6;print@a" 23232363283842232