Модуль не найден, несмотря на то, что он находится в @INC - PullRequest
0 голосов
/ 09 февраля 2012

Perl жалуется, что не может найти модуль, который прямо в @ INC.

Can't locate <module> in @INC (@INC contains etc.)

@ INC установлен правильно, и модуль находится там, где и должен быть. Это веб-приложение, работающее под управлением катализатора, и оно отлично работает в других установках. Что-то не так в этой настройке сервера. Я проверил разрешения для файлов, они в порядке.

Любые предложения о том, что еще это может быть?

Как просили в комментариях, добавив еще немного информации:

В одном из моих контроллеров Catalyst я «использую» модуль, внешний по отношению к приложению Catalyst: Template :: Plugin :: I18n. Я получаю следующую ошибку:

Can't locate Template::Plugin::I18n in @INC (@INC contains:  
  /webroot/www-dev/sonnet/lib    /usr/local/lib/perl5/5.12.4/BSDPAN
  /usr/local/lib/perl5/site_perl/5.12.4/mach /usr/local/lib/perl5/site_perl/5.12.4
  /usr/local/lib/perl5/5.12.4/mach /usr/local/lib/perl5/5.12.4 . /usr/local) at 
  /webroot/www-dev/sonnet/lib/Sonnet/Controller/Pubs.pm line 647.

Модуль находится по адресу /webroot/www-dev/sonnet/lib/Template/Plugin/I18n.pm с теми же разрешениями, что и остальная часть приложения.

1 Ответ

0 голосов
/ 10 февраля 2012

Ну, это стыдно. У меня было случайное утверждение «require», в котором были кавычки вокруг имени пакета! Это было причиной ошибки, хотя утверждение также было ненужным. Слишком много ночного кодирования. Извините за отвлечение. Все ваши предложения очень ценятся!

...