Size: a a a

2021 April 10

W

Warstone in Modern::Perl
Короче... В вашем случае вам надо писать use lib::abs qw(.);
источник

AB

Alex Bush in Modern::Perl
А лучше положить модули в папочку lib как все нормальные люди
источник

W

Warstone in Modern::Perl
А если хотите сделать все правильно - перенесите Local в lib и используйте use lib::abs qw(lib)
источник

D

D in Modern::Perl
я поспорю с этим, нормальные люди собирают пакеты
источник

AB

Alex Bush in Modern::Perl
Как скажете
источник
2021 April 11

АН

Андрей Нагорный... in Modern::Perl
насколько это имеет место быть ?
#!/usr/bin/perl

use v5.30.0;
use strict;
use warnings;
use Log::Any '$log';
use Log::Any::Adapter ('File', "Logs/$ENV{CONSUMER_ID}-event-processor-datetime.log");

package Local::Logger;
our $log;
1;
источник

AP

Anton Petrusevich in Modern::Perl
lib — это для библиотек. использовать это же место для основного приложения — ну такое себе
источник

АН

Андрей Нагорный... in Modern::Perl
нужен логгер
но думаю в каждом модуле прописывать путь к файлу - порочная практика
источник

W

Warstone in Modern::Perl
Лучше сделать отдельный модуль, который подключается первый в основном скрипте, там-же настраивается и в любом модуле, где вы хотите логировать вы должны будете прописать что-то типа:
use My::Logger;

My::Logger::log("my message");

Или что-то в этом духе.
источник

W

Warstone in Modern::Perl
Так-же вам, вполне возможно, захочется сначала загрузить "настройки скрипта" из отдельного файла и частью этих настроек будут настройки логгера. Вот у вас уже есть 2 модуля, которые должны грузиться в строгом порядке и "общаться" друг с другом. Все это общение лучше сделать в отдельном модуле... Что-то типа бутстрапа. Например в Каталисте для этого выделены несколько методов и запрещено вызывать что-нибудь вне их (ну не запрещено, но на ваш страх и риск)
источник

AP

Anton Petrusevich in Modern::Perl
логгер, обычно, синглтон. как применяется этот паттерн в перле — ну легко же найти
источник

АН

Андрей Нагорный... in Modern::Perl
меня по большей части интересует бест практис :)
источник

AP

Anton Petrusevich in Modern::Perl
я, фактически, дополнил, что сказал "Warstone"
источник

DF

Denis F in Modern::Perl
А есть тут юзеры Minilla? Не пойму куда копать: есть модуль который собирается через MakeMaker, делаю руками make test - все ок, делаю minil test - ругается что не из той директории тесты запущены. И что-то в доке не нахожу где это конфигурится
источник

DF

Denis F in Modern::Perl
А, понятно, просто код тестов говно :)
источник

МИ

Михаил Иванов... in Modern::Perl
Log::Any - это и есть тот модуль, который синглтон и который один раз настраивается и потом везде используется.

В скрипте:
use Log::Any '$log'
use Log::Any::Adapter (File, path/to/file)

В модулях:
use Log::Any '$log'
$log->info("привет")
источник

АН

Андрей Нагорный... in Modern::Perl
А, вот оно что.. понял, спасибо )
источник

МИ

Михаил Иванов... in Modern::Perl
@iNeedNew для записи в файл я делал адаптер Fille, вместо идущего в комплекте с Log::Any адаптера File. Он подробнее записывает, с датой и всё такое. На спане лежит.
источник

АН

Андрей Нагорный... in Modern::Perl
А чем он отличается ?
источник

МИ

Михаил Иванов... in Modern::Perl
Подробнее зарисывает
источник