Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум программистов _ Perl программирование _ Проблема с путем в перл-модуле

Автор: IcyWizard 10:08:2007, 09:51

Надо вставить в форму регистрации CAPTCHA.
Модуль Authen.PluggableCaptcha ставила ppm-мом.

Проблема: при попытке вызова пишет
"Can't locate Imager.pm in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .) at C:/Perl/site/lib/Authen/PluggableCaptcha/Render/Image/Imager.pm line 17."

В строке 17 в модуле Imager.pm стоит
use Imager;

Рекурсивный вызов? Зачем?
Причем без пути - например, вызов соседних модулей выглядит так
use Authen::PluggableCaptcha::Render::Image::Imager::layers::bg;

Из-за отсутствия пути он его не находит (т.к. в @INC совсем другие папки).
Руки чешутся просто прописать путь, но ведь это уже готовый стандартный модуль, почему же у него непонятно что в обращении к своим же внутренним модулям? И зачем он сам к себе обращается? unsure.gif

Автор: Vovochka 10:08:2007, 23:11

Прежде чем что то переписывать в чужом, подумайте, почему выложили нерабочий код? blink.gif
А если подумать то ваш модуль скорее всего лишь надстройка над Imager, которого вам и не хватает.

Автор: IcyWizard 11:08:2007, 04:44

Модуль брала со CPANа, по идее должен быть рабочим...

Цитата
А если подумать то ваш модуль скорее всего лишь надстройка над Imager, которого вам и не хватает.

Имеется ввиду что у меня должно быть 2 разных файла Imager.pm? Один из модуля, а второй откуда?

Автор: arto 11:08:2007, 06:52

# perldoc -m Imager | head -20 | tail -5
DSO_call

load_plugin
unload_plugin

#

у вас мамой-то неправильный Imager.pm

Автор: Vovochka 12:08:2007, 22:17

Цитата(IcyWizard @ 11:08:2007, 15:44 )
Имеется ввиду что у меня должно быть 2 разных файла Imager.pm? Один из модуля, а второй откуда?
*


Да, два разных модуля.
Если в ppm прописаны нужные репозитории, то береться все так: ppm install Imager
Если же нет, то модуль на который я давал ссылку в прошлом ответе - то что вам надо.

Authen::PluggableCaptcha::Render::Image::Imager - лишь использует Imager для своих целей. Это два разных модуля.

Для: arto
blink.gif

Автор: IcyWizard 14:08:2007, 08:05

2 Vovochka: спасибо, получилось smile.gif

Автор: IcyWizard 20:08:2007, 13:16

Еще одна проблема того же типа.

Надо указать путь к файлу шрифта. Я скопировала файл шрифта в c:/perl/site/lib и в программе указываю путь как
my $tr1 = "@inc[0]".'/имя файла шрифта';


Путь вроде бы понимает правильно (при команаде print ($tr1); выводит c:/perl/site/lib/имя файла шрифта) но при обращении font_filename=> $tr1, пишет "не могу загрузить файл шрифта".

Что я неправильно делаю?

Автор: Vovochka 20:08:2007, 22:23

Попробуйте строго задать путь к файлу. Может дело не в том, что не удаеться найти файл.

Автор: IcyWizard 21:08:2007, 07:38

Я задавала и просто строчкой. Все равно пишет что не может подгрузить.

Файл шрифта вообще можно просто копировать из папки шрифтов виндоуса, как я это сделала? Или его как-то инсталить надо?

Автор: Vovochka 21:08:2007, 22:14

C каким модулем вы работаете?

Автор: IcyWizard 27:08:2007, 14:59

c AuthenCaptcha

Автор: Vovochka 29:08:2007, 02:44

Честно попробовал заставить себя заинтересоваться этим вопросом. Пока не получилось. sad.gif

Русская версия Invision Power Board (http://www.nulled.ws)
© Invision Power Services (http://www.nulled.ws)