##
D:\>perl -le "$_=23232363283842232;print"
2.32323632838422e+016
####
$_=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
####
$sign="";
if($_<0)
{
$_=-$_;
$sign="-";
}
...and at the end
print $sign,@a