BEGIN { package DT; $INC{"DT.pm"} = 1; use strict; use warnings; use Exporter qw/import/; our @EXPORT_OK = qw{ dispatcher }; my $typecolors = { 1 => \&release, 2 => \&event, 3 => \&gossip, 4 => \&props, 5 => \&diss, 6 => \&other, }; sub dispatcher { my ( $verb, @args ) = @_; $typecolors->{$verb}->( @args ) } sub release { print "release\n" } sub event { print "event\n" } sub gossip { print "gossip\n" } sub props { print "props\n" } sub diss { print "diss\n" } sub other { print "other\n" } } package main; use strict; use warnings; use DT qw/dispatcher/; dispatcher( 2 ); # prints "event\n"