Я новичок в perl, и у меня проблемы. Я использую mojolicious как фреймворк. У меня возникают ошибки при попытке импортировать модуль.
$self->plugin('SessionStore' => Plack::Session::Store::File->new(dir => $session_dir));
Файл State.pm
импортирует use Digest::SHA()
; Я получаю сообщение об ошибке при импорте. Каталог Digest
должен находиться в том же каталоге, что и Plack
Plack находится в /usr/share/perl5/
, но Digest находится в другом месте /usr/lib/x86_64-linux-gnu/perl5/5.26/
, они оба должны находиться в одном месте? Я видел, где пользователи используют use lib 'path to modules'
, однако это модуль perl, который я не создавал, поэтому я не думаю, что это хорошая идея. Фактические сообщения об ошибке:
Can't load application from file "/web/applications/perlwebapp/script/startapp":
Can't locate Digest/SHA1.pm in
@INC (you may need to install the Digest::SHA1 module)
(@INC contains: /web/applications/perlwebapp/script/../lib /etc/perl
/usr/local/lib/x86_64-linux-gnu/perl/5.26.1
/usr/local/share/perl/5.26.1
/usr/lib/x86_64-linux-gnu/perl5/5.26
/usr/share/perl5
/usr/lib/x86_64-linux-gnu/perl/5.26
/usr/share/perl/5.26
/usr/local/lib/site_perl
/usr/lib/x86_64-linux-gnu/perl-base
Странная проблема: /usr/lib/x86_64-linux-gnu/perl5/5.26/
находится в @INC
, но модуль в /usr/share/perl5
не видит его. Если я создам сценарий perl, я могу use Digest::SHA();
мой служебный файл.
[Service]
Type=forking
User=web
Group=web
#Environment=PERL5LIB=/usr/lib/x86_64-linux-gnu/perl5/5.26/
Environment=PERL5LIB=/usr/share/perl5/
UMask=007
ExecStart=/web/applications/perlwebapp/local/bin/hypnotoad /web/applications/perlwebapp/script/runapp
ExecReload=/web/applications/perlwebapp/local/bin/hypnotoad /web/applications/perlwebapp/script/runapp
ExecStop=/web/applications/perlwebapp/local/bin/hypnotoad --stop /web/applications/perlwebapp/script/runapp
PIDFile=/web/applications/perlwebapp/script/hypnotoad.pid
TimeoutStopSec=5
KillMode=mixed
Код приложения:
unless (-d $session_dir){
make_path($session_dir, {mode => oct("0770")});
}
$self->plugin('Config');
$self->plugin('RenderFile');
$self->plugin('SessionStore' => Plack::Session::Store::File->new(dir => $session_dir));
validation_checks($self->validator);