my %ops = ( add => '+', subtract => '-', multiply => '*', divide => '/', ); eval "sub $_ { shift() $ops{$_} shift() }" for keys %ops; print add(4, 6);