获取Perl中的当前工作目录路径

获取Perl中的当前工作目录路径,perl,Perl,我使用$FindBin::RealBin获取perl脚本位置。现在我用这个有问题了。 我正在从一个Perl脚本调用一个Perl脚本。 在调用方脚本中,$FindBin::RealBin工作正常,但在被调用的Perl脚本中,它没有给出位置。 我遗漏了什么吗?由于您没有提供完整的代码示例,这更像是猜测 根据法律,你需要打电话 FindBin::again(); 因为这是已知的FindBin限制。如果我理解您的问题,您可以使用来自的realpath 这是我经常使用的: my ($vol,$scrip

我使用
$FindBin::RealBin
获取perl脚本位置。现在我用这个有问题了。 我正在从一个Perl脚本调用一个Perl脚本。 在调用方脚本中,
$FindBin::RealBin
工作正常,但在被调用的Perl脚本中,它没有给出位置。
我遗漏了什么吗?

由于您没有提供完整的代码示例,这更像是猜测
根据法律,你需要打电话

FindBin::again();

因为这是已知的FindBin限制。

如果我理解您的问题,您可以使用来自的
realpath


这是我经常使用的:

my ($vol,$script_path, $prog) = File::Spec->splitpath(File::Spec->rel2abs( __FILE__ ));
检查它是否适用于您的情况。如果您将内部脚本作为shell调用调用,它应该可以工作。如果你用
do
调用它,我不知道它是否有效

关于这方面的一些阅读资料:

FindBin::Bin已损坏(或google缓存已损坏)

文件::Basename的问题更大


希望对您有所帮助

这有用吗?
$FindBin
用于查找Perl脚本所在的目录。这与Perl进程的当前工作目录不同。你到底在找什么?我只想得到perl脚本的位置。。如何在被调用的perl脚本中获取它。。当我使用$FindBin::RealBin时,它是空的。还有别的办法吗?可能是
my ($vol,$script_path, $prog) = File::Spec->splitpath(File::Spec->rel2abs( __FILE__ ));