Использование CPAN для установки Dancer и зависимостей

Я пытаюсь создать образец веб-службы с помощью Dancer. В качестве ОС я использую Ubuntu 10.04. Я установил Dancer и зависимости с помощью клиента CPAN, а также могу делать

dancer -a MyApp

Однако, когда я пытаюсь запустить файл app.pl, код выдает ошибку, говоря, что YAML.pm не найден. Я уверен, что этот файл был загружен при установке зависимостей. Есть несколько вопросов: -

1. Where does CPAN put all these files which were downloaded? How are they included in the @INC?
2. For using Dancer, do I have to manually include all the files in @INC?

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

Помогите мне понять, что я делаю не так?


person karmanaut    schedule 15.12.2013    source источник
comment
См. Также эту отклоненную ошибку в трекере проблем Dancer на GitHub.   -  person amon    schedule 15.12.2013


Ответы (1)


cpan должен помещать файлы по одному из путей от @INC
perl -E '$"="\n"; say "@INC"'
Вывод в моей системе:

/etc/perl
/usr/local/lib/perl/5.14.2
/usr/local/share/perl/5.14.2
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.14
/usr/share/perl/5.14
/usr/local/lib/site_perl
.

И cpan помещает файлы в /usr/local/share/perl/5.14.2
Поскольку этот путь существует в @INC, вам не следует включать его вручную. Что касается Dancer, то YAML для него не является жесткой зависимостью, из-за этого он не был установлен.

person Oleg G    schedule 15.12.2013
comment
Принимаю ответ. Это то, что я искал. Также, когда я говорю use Dancer ': syntax', я не вижу ошибок. Любое объяснение почему? - person karmanaut; 15.12.2013
comment
Поскольку Dancer.pm не требует самого YAML. Только для нескольких подмодулей требуется YAML: Dancer :: Session :: YAML, Dancer :: Config, Dancer :: Serializer :: YAML. И я думаю, что эти подмодули не загрузятся, если вы скажете use Dancer ': syntax' - person Oleg G; 15.12.2013