sub build_functions { my(@funcs, $pkg) = (@_, scalar caller); for my $f (@funcs) { *{"$pkg\::$f"} = sub { print "I am &$f\n" }; } } build_functions qw/ foo bar baz /; foo(), bar(), baz(); __output__ I am &foo I am &bar I am &baz