sub remove_sign_on_zero { my $num_str = shift; if ($num_str =~ /^-([0\.]+)$/) { return " $1"; } else { return $num_str; } } my $num = remove_sign_on_zero( sprintf('%7.5f', $example) ); #### sub remove_sign_on_zero { $_[0]=~/^-([0\.]+)$/ ? " $1" : $_[0] }