use strict; use warnings; my @sub_names = (qw/foo bar baz/); foreach my $name ( @sub_names ) { no strict 'refs'; *{__PACKAGE__ . "::" . $name} = sub { my ($parm) = @_; print "in $name (got $parm)\n"; } } foo(42); baz(10);