>perl -wMstrict -le "package Module1; ;; sub main { print qq{hi from main($_[0]) in package }, __PACKAGE__; } ;; package Module2; ;; sub main { print qq{hi from main($_[0]) in package }, __PACKAGE__; } ;; package main; ;; my %pages = ( PG_1 => \&Module1::main, PG_2 => \&Module2::main, ); ;; my $pg = 'PG_2'; $pages{$pg}->(42); " hi from main(42) in package Module2