use strict; use warnings; use Test::More tests => 1; my $val = 3.14159; my $oldval = $val; my $newval = do { use B; if ( not B::SVf_POK & B::svref_2object( \$val )->FLAGS or -1 != index $val, 'e' ) { $val = sprintf '%.4f', $val; $val =~ s/\.?0+$// } "$val" }; is "$oldval", "$newval";