perl TemplateToolkit - не удается найти метод объекта "новый" через пакет - PullRequest
0 голосов
/ 12 апреля 2010

Я унаследовал веб-проект, основанный на Perl, и пытаюсь настроить локальный сервер тестирования, чтобы можно было внести внутренние изменения в проект.

Архитектура сервера Ubuntu 9.10 php 5.2.10 MySQL 5.1.37 Perl 5.10.0-24ubuntu4

Все зависимые модули и пакеты установлены, такие как DateTime.pm, TemplateToolkit.pm, но при запуске приложения выдается следующее сообщение об ошибке:

Не удается найти метод объекта "new" с помощью пакета "Template" (возможно, вы забыли загрузить "Template"?) В ​​строке ../lib//KPS/TemplateToolkit.pm 51

Кодовый блок, к которому это относится:

sub new {
    return Template->new(
        INCLUDE_PATH => $KPS::Config::templatepath,
        ABSOLUTE     => 1,
        DEBUG        => 1,
    );
}

Если кто-нибудь сможет пролить свет на это или направить меня в правильном направлении, это будет очень признательно.

Спасибо

Simnom

Ответы [ 2 ]

7 голосов
/ 12 апреля 2010

Сначала необходимо загрузить Template Toolkit с помощью:

use Template;

Чтобы убедиться, что Template :: Toolkit правильно установлен в этой системе, из консоли вы можете запустить:

perl -MTemplate -e0

Если он возвращается без ошибки, это означает, что Template.pm wsa успешно загружен; в противном случае появится сообщение об ошибке «Не удается найти Template.pm в @INC ...».

0 голосов
/ 22 апреля 2014

Дополнительная вещь для проверки, потому что принятый тест ответа может быть успешным, даже если вы не настроены правильно; убедитесь, что объявление пакета в модуле имеет правильный путь. Сценарий таков:

Вы делаете

use a::b;
...
a::b->new();

, а затем в b.pm вы делаете

package b;

Возможно, вы покачиваете головой, пока не поймете, что вам нужно сделать

package a::b;
...