in reply to User configured selection of modules

Yes, it's possible. One way is to use symbolic references:
foreach my $auth (@auth_methods) { no strict 'refs'; my $rv = &{$auth . "::authorize"}($user, $pass); ... }
In a OO world it would look like this:
foreach my $auth (@auth_methods) { my $obj = $auth->new; my $rv = $obj->authorize($user, $pass); ... }