{ package Funcs; use Carp; sub A { print "A!\n" } sub B { print "B!\n" } sub C { print "C!\n" } sub D { print "D!\n" } sub E { print "E!\n" } sub AUTOLOAD { our $AUTOLOAD; carp "no $AUTOLOAD"; } } # now, wherever $func_com comes from... Funcs->$_() for split //, $func_com;