Currently all Makefile.PL's are runinng inside the same package unless 
declared explicitly by each Makefile.PL. This leads to problems.

For example function redefinition errors under:

use strict;
use warnings FATAL => 'all';

e.g if the parent dir's Makefile.PL and the child both define:

sub clean_files {
     return [@scripts];
}

redefine warning will kill the makemaker.

This can be worked around as:

use strict;
use warnings FATAL => 'all';
no warnings 'redefine';

Or declaring a package in each Makefile.PL.

But ideally MakeMaker should run child Makefile.PL's in a dedicated 
package created on the fly by MM (e.g. based on the path):

eval "package Makemaker::Root::$sub_dir_path; $slurped_file_content; 1;";

Otherwise there is the problem that i've mentioned here, and the child 
Makefile.PL's can inadvertently mess up each others global variables and 
what not.

What do you think? If this works for Apache::Registry (running any 
script so it won't affect any other script running by the same 
interpreter) it will probably work for MM as well.

__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com

Reply via email to