Как при запуске скриптика на Perl (не CGI) получить полный путь к месту где этот скрипт лежитПример
Скрипт находиться в /usr/local/test/a.plМы в
/home/user/
a.plполучаем /usr/local/test/
use FindBin;
>use FindBin;
Да вроде то что нужно , спасибо. И всеже неужели нет какой либо внутренней переменной в которой храниться путь к запущенному скрипту :( Убого
>Как при запуске скриптика на Perl (не CGI) получить полный путь к
>месту где этот скрипт лежит
>
А если в начале скрипта так:
$pwd = `pwd`;
print $pwd;
>>Как при запуске скриптика на Perl (не CGI) получить полный путь к
>>месту где этот скрипт лежит
>>
>А если в начале скрипта так:
>$pwd = `pwd`;
>print $pwd;
Не понял ? :( И что?
$pwd = `pwd`;
>>print $pwd;
>
>
>Не понял ? :( И что?
И Че?
Покажет текущую директорию скрипта.
Если конечно вы не пишете скрипт в виндузятине.
А если конечно хочется поумничать - то пож качайте (как сказано ниже)
всякие модули для такой очень "сложной задачи".
Если скрипт находится в одном из каталогов, прописанных в PATH, и запускается просто по имени, что покажет твое `pwd`?Способ, указанный ниже, не очень удобен, когда скрипт запускается по относительному пути, а нужен абсолютный.
>$pwd = `pwd`;
>>>print $pwd;А чем не нравиться такое решение ? и работает везде (Unix/Win)
или тут что то не так?$0 =~ m/.*[\/\\]/g;
Во-первых unix/win - это не везде.Во-вторых все тем же - при запуске по относительному имени результатом будет относительный же путь, который еще предстоит переводить в абсолютный.
В-третьих - это уже сделано господами Graham Barr & Nick Ing-Simmons.
>>>Как при запуске скриптика на Perl (не CGI) получить полный путь к
>>>месту где этот скрипт лежит
>>>
>>А если в начале скрипта так:
>>$pwd = `pwd`;
>>print $pwd;
>
>
>Не понял ? :( И что?Еще один прикол:
$main = `find . -name твойСкрипт.pl -print`
print $main;
(всетаки вы не юниксоид).
>Как при запуске скриптика на Perl (не CGI) получить полный путь к
>месту где этот скрипт лежит
>
>Пример
>Скрипт находиться в /usr/local/test/a.pl
>
>Мы в
>/home/user/
>a.pl
>
>получаем /usr/local/test/print $0 =~ m{.*/}g