Forum Webscript.Ru

Программирование => Perl => Тема начата: Rufender от 12 Декабря 2006, 10:48:38

Название: Очистить @INC
Отправлено: Rufender от 12 Декабря 2006, 10:48:38
Как полностью очистить массив @INC ? чтобы скрипт и не думал лезть за модулями в директории кроме явно указанной с помощью use lib()?
Название: Очистить @INC
Отправлено: ctax от 12 Декабря 2006, 11:52:16
#!/usr/bin/perl
@INC=("/home/me/myModules");
require "module.pm";

или

#!/usr/bin/perl
BEGIN{ @INC=("/home/me/myModules") };
use myModule;
Название: Очистить @INC
Отправлено: Rufender от 12 Декабря 2006, 12:14:07
все равно ищет  в системных папках (etc/perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux /usr/lib64/perl5/vendor_perl/5.8.8) и т.д.
я хочу вообще отключить в них поиск. такое невозможно чтоли?
чтобы искал модули только в /home/me/myModules"
Название: Очистить @INC
Отправлено: NeoNox от 12 Декабря 2006, 12:29:14
no lib qw(:ALL .);
@INC = ();

perldoc lib
Название: Очистить @INC
Отправлено: Rufender от 12 Декабря 2006, 12:43:47
хм. по всякому пробовал, не работает.
Название: Очистить @INC
Отправлено: Rufender от 12 Декабря 2006, 12:46:33
#!/usr/bin/perl -w

no lib qw(:ALL .);
@INC = ();

use CGI;

--
надо чтоб ругнулся на отсутствие CGI , т.к. его нет в моей perllib
а он все равно его находит
Название: Очистить @INC
Отправлено: Rufender от 12 Декабря 2006, 12:48:20
#perl -v

This is perl, v5.8.8 built for x86_64-linux
Название: Очистить @INC
Отправлено: NeoNox от 12 Декабря 2006, 13:21:54
BEGIN {

no lib qw(:ALL .);

@INC = ();

}
Название: Очистить @INC
Отправлено: Rufender от 12 Декабря 2006, 13:27:39
все понятно, не работает именно :ALL - если директории явно указывать, они удаляются из @INC
Название: Очистить @INC
Отправлено: NeoNox от 12 Декабря 2006, 14:10:39
Цитировать
Rufender:
не работает именно :ALL

Поподробнее.