0

我正在尝试从 perl 脚本中调用脚本。我可以看到两种方法。

使用 ./somescript 或指定完整的目录路径。两者都不是理想的,因为“./”只有在调用者 cd 进入目录时才会起作用。完整路径,不是相对的,而是绝对的。无论如何围绕这个?谢谢

4

3 回答 3

1

FindBin如果要查找原始脚本所在的目录,请使用模块,如果要Cwd查找当前工作目录,请使用。

于 2012-06-05T13:28:58.173 回答
1

一种方法是确定您的脚本所属的目录,并使用该目录如何获取正在执行的 Perl 脚本的完整路径?

提供了 2 种方法来实现这一点。

于 2012-06-05T13:44:56.590 回答
0

要获取当前正在执行的脚本的完整路径,可以使用PerlMonks中的以下任一代码块。文件::基本名称:

#!/usr/bin/perl -w
use strict;
use File::Spec::Functions qw(rel2abs);
use File::Basename;
print dirname(rel2abs($0));

CWD可用于此目的。CWD 示例:

use Cwd;
my $dir = getcwd;

应该可以使用基本目录构建完整路径,再加上您对初始脚本和要调用的第二个脚本的相对位置的了解。这样,虽然您将使用绝对路径来调用第二个脚本,但您只是在硬编码相对路径?

于 2012-06-05T12:57:49.663 回答