use strict; use warnings; ;; sub hiya { print 'hi from ', (caller(1))[3]; } ;; sub _x_foo { hiya; }; sub _x_bar { hiya; }; ;; my %disp = ( foo => \&_x_foo, bar => \&_x_bar, zot => \&_x_zot, ); dd \%disp; ;; $disp{foo}->(); $disp{zot}->(); $disp{bar}->();