$ perl -E ' $val = q{2.73M}; %exp = ( M => 6 ); $val =~ s/\d(\w)/exists $exp{ $1 } ? q{e} . $exp{ $1 } : q{} /e; say $val;' 2.M $ perl -E ' $val = q{2.73M}; %exp = ( M => 6 ); $val =~ s/(?<=\d)(\w)/exists $exp{ $1 } ? q{e} . $exp{ $1 } : q{} /e; say $val;' 2.7M $ perl -E ' $val = q{2.73M}; %exp = ( M => 6 ); $val =~ s/(?<=\d)([TGMkmunp])/exists $exp{ $1 } ? q{e} . $exp{ $1 } : q{} /e; say $val;' 2.73e6 ~ $