簡體   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