[Catalyst] Scripts and @INC
Tomas Doran
bobtfish at bobtfish.net
Fri Feb 26 09:50:28 GMT 2010
On 24 Feb 2010, at 15:33, Stuart Watt wrote:
> Does anybody know if there any very good reason why the fastcgi.pl
> (and other) scripts move the application's lib folder to the front
> of @INC even if it is already in @INC but not at the front?
No.
> I've just noticed that my carefully constructed path is being
> trampled. I depend on occasionally overriding the main application's
> lib folder with site-specific stuff, and I cannot do that with the
> current scripts.
>
> This is a workaround until we get certain old parts of the app
> ported to Moose, but would it not be more appropriate to only add
> the library on @INC if it is not there already.
>
> The line concerned seems to be in ScriptRunner.pm
>
> lib->import(File::Spec->catdir($FindBin::Bin, '..', 'lib'));
>
> Would this be better along the lines of:
>
> my $path = File::Spec->catdir($FindBin::Bin, '..', 'lib');
> unless (grep { $path eq File::Spec->rel2abs($_) } @INC) {
> lib->import($path);
> }
>
> This is not tested, but seems the kind of intent needed. Any
> thoughts, feedback, alternative solutions welcome.
Looks totally reasonable to me.
Can you follow up with a patch which makes a change like the above and
adds some tests (as otherwise someone will later 'simplify' it again)..
Cheers
t0m
More information about the Catalyst
mailing list