I'd leave the dispatch table in your module and export a function that uses it:
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"
Note that I've written this all in one file. If you're doing this properly, you don't need the BEGIN block that wraps DT, nor $INC{"DT.pm"} = 1.
In reply to Re: Exporting a Dispatch Table
by FunkyMonk
in thread Exporting a Dispatch Table
by amiribarksdale
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |