0

我有一个 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;

我想念什么?

4

2 回答 2

3

中的目录@INC总是相对于当前工作目录,但一些 Web 服务器将 cwd 设置为/. 如果你想要一个相对于脚本所在目录的补丁,你可以使用

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

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

use mylib;
于 2013-09-30T14:13:33.740 回答
1

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

于 2013-11-07T16:09:05.607 回答