使用lib相对路径不起作用

时间:2013-09-30 13:57:19

标签: perl path

我有一个perl脚本

#!/usr/bin/perl
use strict;
use lib 'lib';
use SOME_MOD;

适用于我的旧服务器。 在新服务器上,它只适用于绝对路径,如

#!/usr/bin/perl
use strict;
use lib '/var/www/apps/myapp/lib';
use SOME_MOD;

我错过了什么?

2 个答案:

答案 0 :(得分:3)

@INC中的目录始终与当前工作目录相关,但某些Web服务器将cwd设置为/。如果需要相对于脚本所在目录的补丁,可以使用

use FindBin qw( $RealBin );
use lib "$RealBin/lib";

或者,由于您要添加的目录是$RealBin/lib$RealBin/../lib,因此您可以使用mylib

use mylib;

答案 1 :(得分:1)

mod_perl的cwd与脚本位置不同。 使用Perl CGI脚本支持配置Webserver时,相对路径解析起作用。