use warnings; use strict; use Data::Dumper; my %d = map { $_, \&{'create_' . $_} } qw(first); print Dumper \%d; $d{first}->(); sub create_first { print "first!\n"; } #### $VAR1 = { 'first' => sub { "DUMMY" } }; first! #### $dispatch{_create_first}->(); #### use warnings; use strict; use Data::Dumper; my %d = map { $_, \&{$_} } map {'create_' . $_} qw(first); print Dumper \%d; $d{create_first}->(); sub create_first { print "first!\n"; } #### $VAR1 = { 'create_first' => sub { "DUMMY" } }; first!