Loading ...
Sorry, an error occurred while loading the content.

Re: Environment Variables and @INC

Expand Messages
  • Tom Schindl
    ... Although that s a little bit off topic and much more a perl question. Yes. You can. testlib/MYTEST.pm ... print LOADED n ; 1; ... test-env.pl ... my $test
    Message 1 of 2 , Jul 28, 2004
    • 0 Attachment
      Ian Michell wrote:
      > Hi,
      >
      > I have a slight problem. I want to know it is possible to use a variable
      > to set part of the @INC path.
      >

      Although that's a little bit off topic and much more a perl question.

      Yes. You can.

      testlib/MYTEST.pm
      ----------------8<----------------
      print "LOADED\n";

      1;
      ----------------8<----------------
      test-env.pl
      ----------------8<----------------
      my $test = "testlib";
      use lib $ENV{testlib};
      use MYTEST;

      print "ENDED\n";
      ----------------8<----------------

      ----------------8<----------------
      [tom@vinea tom]$ export testlib=testlib
      [tom@vinea tom]$ perl test.pl
      LOADED
      ENDED
      [tom@vinea tom]$
      ----------------8<----------------

      with a localy defined var I get the expected behaviour:

      test-var.pl
      ----------------8<----------------
      my $var = "testlib";
      use lib $var;
      use MyModule;
      ----------------8<----------------

      but you can work around this with begin-block:

      test-var-begin.pl
      ----------------8<----------------
      BEGIN {
      $main::test = "testlib";
      }
      use strict;
      use lib $main::test;
      use MYTEST;

      print "ENDED\n";
      ----------------8<----------------


      > i.e. current code that works: use lib qw ( /usr/local/www/cvg-bin/ );
      >
      > Is there a way to make it use an environment variable????
      >

      But you don't really need that because the actual working directory
      which is /usr/local/www/cgi-bin/ (apache cds to this and executes the
      cgi) is already in the lib-path. If you want to add other lib-dirs below
      that path e.g.

      ----------------8<----------------
      /usr/local/www/cgi-bin/testlibs1
      /usr/local/www/cgi-bin/testlibs2
      ----------------8<----------------

      a relative

      ----------------8<----------------
      use lib qw( testlibs1 testlibs2 );
      ----------------8<----------------

      is sufficient.

      > Rgds
      > /usr/local/www/cvg-bin/
      > Ian M
      >


      Reclaim Your Inbox!
      http://www.mozilla.org/products/thunderbird

      --
      Report problems: http://perl.apache.org/bugs/
      Mail list info: http://perl.apache.org/maillist/modperl.html
      List etiquette: http://perl.apache.org/maillist/email-etiquette.html
    Your message has been successfully submitted and would be delivered to recipients shortly.