繁体   English   中英

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

[英]Get the current working directory path in Perl

我正在使用$FindBin::RealBin获取perl脚本位置。 现在我在使用时遇到问题。 我正在从一个Perl脚本调用一个Perl脚本。 在调用者脚本中, $FindBin::RealBin可以正常工作,但是在被调用的Perl脚本中,它没有给出位置。 我错过了什么吗?

这就是我一直使用的:

my ($vol,$script_path, $prog) = File::Spec->splitpath(File::Spec->rel2abs( __FILE__ ));

检查它是否适合您的情况。 如果您将内部脚本作为外壳程序调用,它应该可以工作。 我不知道如果您用do调用它是否会起作用。

关于此的一些阅读:

请参见如何获取正在执行的Perl脚本的完整路径?

FindBin :: Bin已损坏http://use.perl.org/~Aristotle/journal/33995 (或Google缓存http://webcache.googleusercontent.com/search?q=cache:y-5OZsxdTT8J:use.perl .org /〜Aristotle / journal / 33995

File :: Basename http://perldoc.perl.org/File/Basename.html更具问题

希望能帮助到你

由于您没有提供完整的代码示例,因此更多的是猜测。
根据文档 ,您需要致电

FindBin::again();

因为这是FindBin的已知限制。

如果我理解您的问题,则可以使用Cwd的 realpath

$ cat ./mycode
#!/usr/bin/env perl
use strict;
use warnings;
use Cwd;
print "called as '$0'\n";
print "lives  in '", Cwd::realpath($0), "'\n";

$ ./mycode
called as './mycode'
lives  in '/Users/jrf/Sandbox/mycode'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM