#!perl use strict; # BrowserUK's function defs my %funcs = ( power => sub { return exp( $_[0] ) }, log2 => sub { return log( $_[0] )/log(2.0) }, loge => sub { return log( $_[0] ) }, log10 => sub { return log( $_[0] )/log(10.0) }, round => sub { return int( $_[0] + $_[ 0 ] < 0 ? -0.5 : 0.5 ) }, trunc => sub { return int($_[0]) }, f1 => sub { return sprintf "%.1f", $_[0] }, f2 => sub { return sprintf "%.2f", $_[0] }, f3 => sub { return sprintf "%.3f", $_[0] }, f4 => sub { return sprintf "%.4f", $_[0] }, f5 => sub { return sprintf "%.5f", $_[0] }, ); my $A = shift; my $chosen = $funcs{$A} or die "No such func $A\n"; s/(?<=\s)(\S+)/$chosen->($1)/ge, print while <>;