我有一个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;
我错过了什么?
答案 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时,相对路径解析起作用。