perl符号链接路径

时间:2011-03-11 19:39:11

标签: perl scripting symlink

我的脚本是/a/b/c/a.pl。但是我使用/a/symlink/c/a.pl来访问它。当我使用符号链接路径运行脚本时,如何读取路径?

  • 当我使用/a/b/c/a.pl时,我应该/a/b/c
  • 当我使用/a/sl/c/a.pl时,我应该/a/sl/c

3 个答案:

答案 0 :(得分:3)

我不确定你在问什么,但FindBin可能会做你想要的。请参阅perldoc FindBin并阅读$Bin$RealBin

如果FindBin不是您想要的,请尝试:

#!/usr/bin/env perl

use strict;
use warnings;

use Cwd;
use File::Basename;

my $i_am_at = dirname( $0 );
if( $i_am_at eq '.' ){
  $i_am_at = cwd();
}
print "I am at $i_am_at\n";

答案 1 :(得分:1)

认为$0是您追求的变量。

答案 2 :(得分:-1)

至少对于* nix系统,您可以使用$ENV{PWD}`pwd`