Как мне использовать настраиваемый модуль в моем веб-приложении на Heroku / Perl?

Я видел этот пост о похожем вопросе, но ответы не позволили мне понять процесс. AFAIK, Perl не является компилируемым языком. Нет смысла помещать весь свой код в один файл приложения ... Хорошо, я также должен признаться, что я не эксперт по сборкам Heroku.

Моя проблема действительно проста: я закодировал приложение Mojolicious, моя установка Perloku работает хорошо, я доволен, за исключением того, что я не понимаю, как упаковать свой собственный модуль Perl в свое приложение. И я не могу поверить, что этого невозможно достичь.

Может ли кто-нибудь дать мне совет о том, что мне делать?


person John Doisneau    schedule 22.10.2013    source источник


Ответы (1)


Я использую Heroku, Perloku и Mojolicious для своего личного веб-сайта. У меня есть пара очень простых модулей, которые я написал для подключения к базе данных и выполнения одного запроса.

https://github.com/elmoren/perl-mojo-heroku

Я использую полноразмерное приложение Mojolicious. Я помещаю все свои .pm файлы в каталог lib. Затем в моем файле приложения Mojolicious lib/NJEApp.pm:

use lib 'lib';
use Projects; # This is a basic module that runs a single database query. 

В script/StartApp.pl. Этот файл вызывается файлом Perloku в каталоге верхнего уровня.

use strict;
use warnings;

use FindBin;
use lib "$FindBin::Bin/../lib";
use Mojolicious::Commands;

#~ Start the Commands for the Application
Mojolicious::Commands->start_app('NJEApp');

Для внешних модулей вы можете поместить их в Makefile.PL в разделе PREREQ_PM = {}

person Nate    schedule 23.10.2013
comment
Спасибо, Нейт, ты молодец. Ваша установка - это именно то, что я искал, и хотя я еще не настраивал ее на своей стороне, я уверен, что она будет отлично работать. - person John Doisneau; 23.10.2013
comment
В конце концов, самое забавное - это осознать, что на самом деле единственное действие, которое мне нужно было предпринять, - это переместить мое приложение во вложенную папку, чтобы оно могло видеть каталог / lib! (На данный момент я использую Mojolicious :: Lite) - person John Doisneau; 23.10.2013