2016-07-01 10 views

ответ

2

Это будет включать в себя каталог с именем ~ в вашем пути поиска библиотек.

Если вы ожидали ~ расширить до /home/CJ7, то это не будет работали, потому что это командная оболочка (например, Баш) делает интерполяцию для таких вещей, как export PATH=~/bin:$PATH, а оболочка не участвует здесь.

7

Perl ничего не знает о ~, что является shell feature. Вызов с помощью lib pragma будет упорядоченно включать каталог с буквальным именем '~' в @INC (в текущем каталоге), так как это происходит at BEGIN, так как все use do. Ошибки приходят позже, когда скрипт пытается импортировать из модулей, ожидаемых там. (Если каталог с таким именем фактически существует, с модулями в нем.) Таким образом, это может быть сложнее диагностировать.

Вы можете сделать то же самое, используя хэш-код .

use lib "$ENV{HOME}/path_from_HOME/"; 

Для этого среды необходимо иметь правильно настроить HOME, но это должно быть в порядке.