|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Artem Chuprina 2:5020/400 03 Nov 2003 22:44:47 To : Maxim Yemelyanov Subject : Re: Re[3]: Проблемы с написанием модуля -------------------------------------------------------------------------------- Хмутро. MY> [Mon MY> Nov 3 19:24:18 2003] YYY.pm: Prototype mismatch: sub XX::YYY::MY_PROC ($$$) MY> vs ($$@) at MY> /usr/local/apache/lib/perl/XX/YYY.pm line 118. MY> Вылечилось рестартом апача. Hо MY> мне казалось, что при обращении к измененному модулю mod_perl должен его MY> перекомпилить. А документации на mod_perl так не казалось. MY>>> Таки да, MY> пока MY>>> развивал проект, в одном из модулей слелал use другого. MY>>> Кроме того, MY> эти модули use () - MY>>> ются из startup.pl. AC>> Это неважно. Важна именно MY> циклическая зависимость. AC>> Чтобы второй use происходил до того, как MY> закончилось AC>> чтение этого модуля в первый раз. MY> Так. MY> Поскольку у меня ни в одном MY> модуле нет циклических зависимостей (use только древовидный), то, надо MY> полагать, что MY> перл вместо меня решает, что ему лучше подгрузить там, где я этого не MY> ожидаю, и таким образом вылезают косяки. Hе бывает. MY> Ладно бы еще Subroutine redefined, я бы закрыл на это глаза. MY> Hо как понять то, что до рестарта апача он не видит изменений в модулях? Как документированную особенность. AC>> Альтернативный вариант, который я теоретически AC>> могу MY> себе представить - глюки с package. Hо в AC>> эту сторону я не думал. MY> Эээ.. что значит MY> глюки с package? Трабла с перлом? Это значит, что у тебя где-то слово после package не соответствует имени файла. То есть, например, файл называется относительно одной из директорий в @INC My/Module.pm, а в файле написано package Module; или package my::module; Или наоборот, файл называется Module.pm (т.е. лежит непосредственно в одной из директорий в @INC), а в нем написано package My::Module; Hо повторяю, я в эту сторону не думал, и данный конкретный глюк по этому пути моделировать не пытался. -- Artem Chuprina RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/122.256, ICQ: 13038757 --- ifmail v.2.15dev5 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по:
Архивное /ru.cgi.perl/114775537ffca.html, оценка из 5, голосов 10
|