Почему в файле perl
не работает?Почему нельзя использовать lib '~'; " использовать в perl-файле?
use lib '~';
Почему в файле perl
не работает?Почему нельзя использовать lib '~'; " использовать в perl-файле?
use lib '~';
Это будет включать в себя каталог с именем ~
в вашем пути поиска библиотек.
Если вы ожидали ~
расширить до /home/CJ7
, то это не будет работали, потому что это командная оболочка (например, Баш) делает интерполяцию для таких вещей, как export PATH=~/bin:$PATH
, а оболочка не участвует здесь.
Perl ничего не знает о ~
, что является shell feature. Вызов с помощью lib pragma будет упорядоченно включать каталог с буквальным именем '~'
в @INC (в текущем каталоге), так как это происходит at BEGIN, так как все use do. Ошибки приходят позже, когда скрипт пытается импортировать из модулей, ожидаемых там. (Если каталог с таким именем фактически существует, с модулями в нем.) Таким образом, это может быть сложнее диагностировать.
Вы можете сделать то же самое, используя хэш-код .
use lib "$ENV{HOME}/path_from_HOME/";
Для этого среды необходимо иметь правильно настроить HOME
, но это должно быть в порядке.