So, I'm working on my Catalyst app and editing one of my controllers. I restart apache (app runs under mod_perl) and get a useless error message
Warning: Use of "require" without parentheses is ambiguous at (eval 357) line 1.
syntax error at (eval 357) line 2, at EOF
Compilation failed in require at/Users/chris/perl/lib/perl5/site_perl/Catalyst/Test.pm line 79.
Grr, I hate those. Something is dynamically loading a module that it doesn't like, but it's happening down in an eval{} so the error is obscured. So, I pop in a line:
use Carp; $SIG{__DIE__} = \&Carp::confess;
and discover that the file that's failing is ".#Home.pm". Module::Pluggable has picked up an auto-save file that Emacs put down because I forgot to save a buffer before restarting. So, the fix is simply "C-x C-s".
After a day of fighting with Catalyst under FastCGI vs. mod_perl, I had to just laugh at this absurd failure.
But then I started thinking: how smart should Module::Pluggable be about special cases like that? Is this worth a bug report? Vi users don't have to suffer this because Module::Pluggable won't pick up the
I call it a bug (Score:1)
Since Foo::.#Home.pm is not a valid module name, I don't think Module::Pluggable should be loading it. It's not a difficult thing to check. I'd file the bug report.
Re: (Score:1)
I'd expect Module::Pluggable to skip at the very least hidden files) but checking that the file name matches a legitimate module naming pattern works as well.
Re: (Score:2)
Re: (Score:1)
Re: (Score:1)