c:\@Work\Perl\monks>perl -MData::Dump -le "use warnings; use strict; ;; sub hiya { print 'hi from ', (caller(1))[3]; } ;; sub _x_foo { hiya; }; sub _x_bar { hiya; }; ;; my %disp = map { $_ => \&{ '_x_' . $_ } } qw(foo bar zot); dd \%disp; ;; $disp{foo}->(); $disp{zot}->(); $disp{bar}->(); " { bar => sub { "???" }, foo => sub { "???" }, zot => sub { "???" } } hi from main::_x_foo Undefined subroutine &main::_x_zot called at -e line 1.