sub format_money { my $self = shift; my $string = shift; my ($euro,$cent); if($string =~m/\./){ ($euro,$cent) = split(/\./,$string); }else{ ($euro,$cent) = ($string,0); } my $money = $self->format_num($euro) . ',' . sprintf("%.2d", $cent); return $money; } sub format_num { my $self = shift; my $num = shift; return $num if(length($num) < 4); my $reverse = reverse($num); $reverse =~ s/(\d{3})/$1./g; $num = reverse($reverse); $num =~ s/^\.//; return $num; }