Для использования lib вы должны использовать полный путь, и вы не должны использовать релятивный путь как этот.
use '../lib';#not working in all times.
Сценарий: ваши сценарии находятся в чем-то / bin / prog.pl, ваша библиотека - что-то в / lib / lib.pm.
Если вы используете релятивный путь, вы должны назвать свою программу следующим образом:
cd something/bin/ && ./prog.pl
Если вы хотите использовать релятивный путь, используйте FindBin, чтобы найти ваш текущий путь:
use FindBin;
use lib "$FindBin::Bin/../lib";#your lib realitv to your script
use lib $FindBin::Bin;#your current script full path
Тогда вы можете вызывать вашу программу из любого места, где она всегда найдет свою реальную библиотеку.
cd ~
something/bin/prog.pl# ti will use the correct lib