sub foo {} sub bar {} sub baz {} sub qux {} if ( my $ref = main->can($method) ) { $ref->(); } #### { sub foo{} sub bar{} sub baz{} sub qux{} } my %dispatch = ( foo => \&foo, bar => \&bar, baz => \&baz, qux => \&qux );