sub incdec { $number = shift; # do something if not /^\d*\.\d+$/ return $number+1 if $number =~ /^\d+$/; $number =~ /\.(\d+)$/; return $number + ("1E-".length($1); } for $n (1, .004, 1.99, 1.79, 1.009999) { print "$n++ = ".incdec($n)."\n"; }