package Module1; use strict; use Exporter qw(import); our @EXPORT = qw(main); sub main { do_something(); } 1; package Module2; use strict; use Exporter qw(import); our @EXPORT = qw(main); sub main { do_something2(); } 1; script.pl my $query = get_param('page') || 'main'; my %pages = ( main => \&main, # to go to Module1 main another_page => \&main, #to go to Module2 main );