Perl символический связанный путь - PullRequest
1 голос
/ 11 марта 2011

У меня есть сценарий под именем /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 ]

3 голосов
/ 11 марта 2011

Я не уверен, что вы спрашиваете, но 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 голос
/ 12 марта 2011

Подумайте $0 - это переменная, которую вы ищете.

0 голосов
/ 11 марта 2011

Для * nix систем, по крайней мере, вы можете использовать $ENV{PWD} или `pwd`.

...