Как заставить Perl автоматически искать сценарии в определенных каталогах?

У меня установлен ActiveState Perl на компьютере с Windows.

Теперь предположим, что у меня есть сценарии, в том числе один с именем "SomeScript.pl", в этом каталоге:

"C:\Example\Foo\Bar\"

Как настроить Perl для автоматического поиска сценариев в этом каталоге при передаче пути к сценарию?

Например, из командной строки я могу запустить...:

perl C:\Example\Foo\Bar\SomeScript.pl

...просто хорошо.

Но следующее...:

perl SomeScript.pl

терпит неудачу, потому что Perl не знает, что нужно искать в каталоге "C:\Example\Foo\Bar\". Как настроить Perl для автоматического поиска сценариев в определенном каталоге при передаче имени сценария из командной строки?


person WingedKnight    schedule 16.09.2016    source источник
comment
Это может помочь — superuser.com/questions/284342/   -  person yonyon100    schedule 16.09.2016
comment
Эта ссылка не помогает. Установка переменной среды Windows PATH полезна только тогда, когда команда передается в оболочку Windows напрямую, а не в этом случае, когда имя файла сценария передается в качестве параметра исполняемому файлу Perl.   -  person WingedKnight    schedule 17.09.2016


Ответы (2)


Это возможно по крайней мере в некоторых Windows Perls (я использую Strawberry 5.24).

  1. Добавьте нужный путь к вашему Windows PATH. Панель управления > Система > Дополнительные параметры системы > Переменные среды

  2. Запустите Perl с ключом -S.

    программа perl -S.plx

Применяются все обычные проблемы с управлением PATH (например, запускается первый файл с таким именем).

person mp3    schedule 17.09.2016
comment
Большое спасибо! Это работает! Я пытался проголосовать за вас, но, как новый пользователь, у меня, видимо, недостаточно репутации, чтобы засчитываться за. - person WingedKnight; 18.09.2016
comment
Я думаю, может быть, есть возможность пометить / принять это как ответ. Я тоже новичок, поэтому не уверен. - person mp3; 18.09.2016

Это не вопрос Perl, это больше связано с вашей переменной $PATH.

Если вы используете новейшую версию Windows 10, вы можете добавить каталог в свой файл .bashrc, добавив export PATH=<your directory here>:$PATH в конец этого файла.

Кроме того, вы также можете добавить этот каталог в свой PATH через меню. Редактировать переменные среды через раздел "Дополнительно" в "Свойствах системы".

Затем перезапустите командное окно, и вы можете запустить скрипт следующим образом:

SomeScript.pl
person Mike Tung    schedule 16.09.2016
comment
Я не понимаю, что вы имеете в виду. Файла .bashrc нет, поскольку оболочка представляет собой командную строку Windows, а не Bash. Если вы имеете в виду добавление каталога сценариев в переменную среды Windows %PATH%, я уже пытался это сделать, и это не работает; Очевидно, Perl не проверяет переменную среды Windows %PATH%, когда решает, где искать скрипты. - person WingedKnight; 16.09.2016
comment
Вы не можете сделать то, что вы просите. В пути ищутся только исполняемые программы, а не параметры. Ваш скрипт не является исполняемым. Помещение каталога в %PATH% ничего не даст. Если вы действительно хотите просто установить переменную set MYFILE=c:\foo\bar\script.pl, вы можете сделать perl %MYFILE% - person Secto Kia; 16.09.2016
comment
это можно сделать, см. ссылку stackoverflow.com/questions/23400030/windows-7-add-path - person Mike Tung; 16.09.2016
comment
Не стесняйтесь редактировать мое редактирование вашего ответа. :) Я был взволнован, когда услышал о наличии bash в Windows, но, видимо, все мои версии Windows 10 были слишком старыми. - person Christopher Bottoms; 16.09.2016
comment
Этот stackoverflow.com/questions/23400030/windows-7-add Ссылка -path связана с изменением переменной Windows PATH, которая полезна только тогда, когда команда передается в оболочку Windows напрямую, а не в этом случае, когда имя файла сценария передается в качестве параметра исполняемому файлу Perl. . - person WingedKnight; 17.09.2016