I noticed a changed behavior in Catalyst, and wondered if it was deliberate.

I have some Catalyst apps running on the system Perl, which has a slightly 
older Catalyst installed.  It's 5.90007.

In that version, I can execute myapp_server from the scripts directory:

wwonko@holly:~/projects/MyApp/script $ ./myapp_server.pl 
[debug] Debug messages enabled
[debug] Statistics enabled
[debug] Loaded plugins:
.----------------------------------------------------------------------------.
| Catalyst::Plugin::ConfigLoader  0.30                                       |
'----------------------------------------------------------------------------'
> ... lots more snipped, the app works fine ...

I noticed that with 5.9.0010, installed via perlbrew, I get load failures:

wwonko@holly:~/projects/MyApp/script $ perlbrew switch perl-5.14.2
wwonko@holly:~/projects/MyApp/script $ ./myapp_server.pl 
Can't locate MyApp.pm in @INC (@INC contains: 
/home/web/www.rdwarf.com/users/wwonko/TopazLib-v1.00.00/lib/site_perl/5.14.2//i686-linux
 /home/web/www.rdwarf.com/users/wwonko/TopazLib-v1.00.00/lib/site_perl/5.14.2/ 
/home/wwonko/perl5/perlbrew/perls/perl-5.14.2/lib/site_perl/5.14.2/i686-linux 
/home/wwonko/perl5/perlbrew/perls/perl-5.14.2/lib/site_perl/5.14.2 
/home/wwonko/perl5/perlbrew/perls/perl-5.14.2/lib/5.14.2/i686-linux 
/home/wwonko/perl5/perlbrew/perls/perl-5.14.2/lib/5.14.2 .) at 
/home/wwonko/perl5/perlbrew/perls/perl-5.14.2/lib/site_perl/5.14.2/Module/Runtime.pm
 line 317.
 at 
/home/wwonko/perl5/perlbrew/perls/perl-5.14.2/lib/site_perl/5.14.2/Catalyst/Script/Server.pm
 line 239


Both run properly if I run the script from the MyApp directory:

wwonko@holly:~/projects/MyApp $ script/myapp_server.pl 
[debug] Debug messages enabled
[debug] Statistics enabled
[debug] Loaded plugins:
.----------------------------------------------------------------------------.
| Catalyst::Plugin::ConfigLoader  0.30                                       |
'----------------------------------------------------------------------------'
> ... lots more snipped, the app works fine ...

Looking at @INC, it's clear that Catalyst no longer adds "$basename/../inc" to 
the path - I haven't dug into the code to find where the change was.

Is this a deliberate change?  Is there a reason for it?  Or is it an unexpected 
change?

I know all the help and samples have people run "script/myapp_server.pl", but I 
never do; I run it from the script directory.  I'm also concerned that having 
to be in the right CWD will allow loading of unexpected modules, rather than 
being based on the app's location, as I'd expect.

Anyone know what's going on?
_______________________________________________
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/

Reply via email to