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}->(); }