in reply to execute function with name passed as string parameter

Simpler calling convention for using a variable as a sub-name - use parens:
perl -e '$choice="1"; %hash=( 0 => one, 1 => two ); sub one {print "on +e\n"}; sub two {print "two\n"};$hash{1}()'
prints : "two"

     Syntactic sugar causes cancer of the semicolon.        --Alan Perlis