http://www.perlmonks.org?node_id=771983


in reply to Access functions by name

Either use UNIVERSAL's "can" method, or look up the name in the symbol table hash %FunctionsSet:: (see perlmod) e.g.
use strict; use warnings; package FunctionsSet; sub function1 { warn "This is function1" } sub function2 { warn "This is function2" } sub function3 { warn "This is function3" } sub function4 { warn "This is function4" } package main; my @names = qw/function1 function4/; foreach my $func (@names) { FunctionsSet->can($func)->(); } my @more_names = qw/function2 function3/; foreach my $func (@more_names) { $FunctionsSet::{$func}->(); }