Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1158590
  • 博文数量: 253
  • 博客积分: 5892
  • 博客等级: 大校
  • 技术积分: 1942
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-24 14:20
文章分类

全部博文(253)

文章存档

2012年(98)

2011年(155)

分类: Python/Ruby

2011-10-18 22:48:43

在perl脚本中使用非标准路径库的方法。(标准路径是什么?perl -V)
有如下几种情况:
1. 我们自己的脚本,需要在其中中使用某一个库,这个库不在这个标准路径中,那么我们怎么使用呢?
   方法1:
   使用perl的lib模块,在自己的脚本中的开头加如下行:
   use lib qw(/home/stas/lib/perl5/5.6.1/
           /home/stas/lib/perl5/site_perl/5.6.1
           /home/stas/lib/perl5/site_perl
    );
    方法2:
    直接修改@INC,在自己的脚本开头加如下行
    BEGIN {
    unshift @INC,
        qw(/home/stas/lib/perl5/5.6.1/i386-linux
           /home/stas/lib/perl5/5.6.1
           /home/stas/lib/perl5/site_perl/5.6.1/i386-linux
           /home/stas/lib/perl5/site_perl/5.6.1
           /home/stas/lib/perl5/site_perl
        );
   }
    他们的区别可以参见《practical mod_perl》的3.9.2.1、

2.我们需要安装一个一个模块A,模块A又依赖与模块B,但是B本身又不是安装在标准目录下
这个时候我们再采取方法1,可能就不是最好的方式了。
我们可以设置perl的环境变量:
export PERL5LIB=/home/stas/lib/perl5/5.6.1:\
/home/stas/lib/perl5/site_perl/5.6.1:\
/home/stas/lib/perl5/site_perl


以上说的都是perl脚本,如何引用非标准的库的位置的方法。那么在apache中我们具体应当怎么使用呢?
方法一:
    在http.conf中设置如下行:
    PerlSetEnv PERL5LIB /my/lib/perl:/other/lib/perl
      举例来说,我们写了一个apche的mod_perl模块名字叫Apache::Hello.pm,这个模块的位置在:/home/maguowei/apache/htdocs/lib/perl/Apache/Hello.pm
      那么我们就有如下的配置:
      PerlSetEnv PERL5LIB /home/maguowei/apache/htdocs/lib/perl/
     
    SetHandler perl-script
    PerlHandler Apache::Hello
   

方法二:
      还是上边的例子:
      举例来说,我们写了一个apche的mod_perl模块名字叫Apache::Hello.pm,这个模块的位置在:/home/maguowei/apache/htdocs/lib/perl/Apache/Hello.pm
      我们写了如下一个额外的脚本,命名为startup.pl
      #/usr/bin/perl -w
    use lib qw(/home/maguowei/apache/htdocs/lib/perl/
    );
      1;#这个1是必须的
     
      然后在httpd.conf中添加如下行
      PerlRequire /home/maguowei/apache/conf/startup.pl
      PerlFreshRestart     On
    
     SetHandler perl-script
     PerlHandler Apache::Hello
   

   
    然后stop start的apache即可
阅读(2203) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~