#!/usr/bin/perl -w use strict; sub foo { print "foo\n" } my $f = 'foo'; &$f; #### my %ops = ( one => \&one, two => \&two, ); my $op = $q->param( 'op' ); die "Invalid operation '$op'\n" unless exists $ops{ $op }; $subs{ $op }->(); #### my $op = $q->param( 'op' ); my $sub = __PACKAGE__->can( $op ); die "Invalid op '$op'\n" unless $sub; $sub->();