Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > получить имя/путь скрипта в самом себе |
Автор: _hunter 9.1.2008, 20:16 |
Добрый день... Можно ли как-то в скрипте узнать путь к себе? Т.е. нужно что-то типа сишного argv[0] (как я понимаю перловский @ARGV содержит именно параметры командной строки). С уважением... |
Автор: KSURi 9.1.2008, 20:43 | ||||
Добавлено @ 20:47 Или для точности
|
Автор: nitr 10.1.2008, 03:37 | ||||||||||||||
Это уже обсуждалось на форуме, к сожалению $0 не всегда даёт ожидаемый результат. Так что, KSURi, правильно поправился Вот почему: 1.pl
Чтобы было верно ![]() 1.pl
В переменной $0 содержится имя скрипта и путь его вызова. Чтобы получить потом только путь, то надо обработать переменную. К примеру, создать регесп, но зачем мучится. В базовом модуле Cwd , есть функция cwd, это можно сказать юниксовая pwd, но для получения "валидного" пути в Windows, надо использовать
Даже abs_path выводит "невалидный" для Windows путь.
Имхо, надо примерно так, возможно есть иное решение ;)
|
Автор: AlexPet 10.1.2008, 09:42 | ||
Я всегда использовал для получения пути модуль FindBin:
|
Автор: nitr 10.1.2008, 10:03 | ||||
AlexPet, если глянуть на исходник этого модуля, то вот что можно увидеть:
так что... ;) Да и у вас тоже надо регеспом "модифицировать" эту переменную:
|
Автор: AlexPet 10.1.2008, 11:53 |
nitr, да, точно. Никогда не обращал внимание на косые черты в win32 |
Автор: KSURi 10.1.2008, 16:22 | ||
В принципе nitr прав, но фатального ничего не случится, если вы не исправите слэши, т.к. Windows воспринимает оба варианта:
|
Автор: nitr 10.1.2008, 20:12 | ||||||
Она понимает как-то "кривовато" ;)
она иначе воспринимает, можно найти конечно документацию, но стоит ли?
отличия при работе с разными дисками ![]() |