#!/usr/bin/perl use Benchmark; sub Regex { my $val=shift; $val =~ s/([\.\d]+)e([-+]?\d+)/$1*10**$2/egi; return $val; } sub Eval { my $val=shift; $val=eval " $val "; return $val; } sub Sum { my $val=shift; $val=$val+0; return $val; } sub Sprintf { my $val=shift; $val=sprintf("%f",$val); return $val; } sub SprintfSubst { my $val=shift; $val=sprintf("%.10f", $val); $val=~s/0*$//; return $val; } timethese(100000, { Regex => sub { Regex("1.25e-3") }, Eval => sub { Eval("1.25e-3") }, Sum => sub { Sum("1.25e-3") }, Sprintf => sub { Sprintf("1.25e-3") }, SprintfSubst => sub { SprintfSubst("1.25e-3") }, });