johnnywang has asked for the wisdom of the Perl Monks concerning the following question:

Hi, would appreciate some help with the following, it seems I'm going nowhere with it.

My mod_perl simply can't load XML::Generator. As soon as I put "use XML::Generator;" in a perl startup file and include in httpd.conf, Apache won't start, complaining that it can't locate XML/Generator/ in @INC.

But the package XML::Generator::overload is in the same file as XML/ Furthermore, when I go through the commandline (say "perl -d -MXML::Generator -e 1"), all is fine.

I'm using perl 5.8.0, mod_perl1.2, apache 1.3.3, and XML::Generator 0.99. Any help would be appreciated, or any suggestion as to how to proceed. Thanks.

Replies are listed 'Best First'.
Re: XML::Generator problem in mod_perl
by sundialsvc4 (Abbot) on Nov 30, 2007 at 17:05 UTC

    I confess that I don't use mod_perl much, but the magic voodoo that you probably need here is the Apache directive:   SetEnv PERL5LIB path:path:path

    As you may or may not know, @INC is the list of places that Perl will search when looking to find any library. You can see this list by entering perl -V (note the upper-case 'V'). This list is searched from front-to-back.

    Many things can “prepend” entries to this list (that is to say, “add them to the front of it”):

    • use lib pragmas.
    • PERL5LIB and various other “environment variables.”
    • Your own program-voodoo:   @INC is just an ordinary list...

    By using this directive in Apache, you specify these environment-variable settings in the context of this <VirtualHost>. (You can probably use them in an .htaccess file, too.)

    The value of this environment-variable is a list of path-names separated by colons. I always use absolute path-names.

    One interesting bit of woot-woot! voodoo is the module FindBin, which can be used with use lib in the manner described in perldoc FindBin

      Are you using Apache2::porting module for debugging?

Re: XML::Generator problem in mod_perl
by Anonymous Monk on Nov 30, 2007 at 09:03 UTC
    what is @INC