in reply to Re^4: What CPAN modules are "good reads"?
in thread What CPAN modules are "good reads"?

Perl has well-established ways to set up inheritance. Messing with the caller's @ISA from your module's import() method is not a clean way to do it, and the documentation doesn't mention it being done at all. It does the same for the dispatcher class.

Your criticism is absolutely on point and this is one thing I found wrong with the module when I first started using it on Monday. However, it is documented, in a way. The only reason I know this is I think I've read every single document written about Catalyst twice since Monday.

From the Tutorial:

When the Catalyst module is imported by the application code, Catalyst performs the first stage of its initialization. This includes loading the appropriate Engine module for the environment in which the application is running, loading any plugins and ensuring that the calling module (the application module) inherits from Catalyst (which makes the Catalyst methods config and setup available to the application module). (Emphasis mine.)


  • In general, if you think something isn't in Perl, try it out, because it usually is. :-)
  • "What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against?"
  • Comment on Re^5: What CPAN modules are "good reads"?

Replies are listed 'Best First'.
Re^6: What CPAN modules are "good reads"?
by perrin (Chancellor) on Jun 16, 2005 at 13:29 UTC
    Good memory! I'm sure you would agree that it should be documented in the Catalyst man page as well, not just in another tutorial document. When having trouble with a change in arguments to Catalyst, I looked there, not at the tutorial.