我的脚本是/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
答案 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`
。