Moose - это постмодернистская объектная система для Perl 5, которая избавляет от скуки при написании объектно-ориентированного Perl. Он заимствует все лучшее из Perl 6, CLOS (Lisp), Smalltalk, Java, BETA, OCaml, Ruby и других, сохраняя при этом верность своим корням Perl 5.
1 ответ

Используя Moose, как мне установить значение атрибута ro в атрибуте runtime?

У меня есть атрибут атрибута, который я хочу установить на основе других атрибутов класса. Я действительно хочу по умолчанию для Attribute Trait, который получает копию класса $self а не мета для атрибута. Я хочу сделать что-то подобное в своем клас…
16 ноя '10 в 16:36
2 ответа

Как настроить схему DBIx::Class с Moose - конкретное руководство

Мне было довольно сложно найти информацию о том, как собрать DBIx::Class структура схемы с использованием Moose, Как это сделать правильно (по сути работает) и в современном Perl (хороший стиль, быстро, без предупреждений)? Это мои цели: следуй за л…
18 мар '14 в 15:01
1 ответ

Черты лося для многомерных структур данных

Прервать обработку внутренней переменной из вызовов переменной в вызовы объекта легко, используя обработчики Attribute:: Native:: Trait. Тем не менее, как вы справляетесь с несколькими структурами данных? Я не могу придумать какой-либо способ обрабо…
14 июл '11 в 20:20
2 ответа

Как правильно представить миксин / роль / черту с UML?

Я и несколько других разработчиков в настоящее время очищаем нашу унаследованную базу кода, в основном разделяя визуальный слой и слой данных. Чтобы помочь разработчикам, не участвующим в этом рефакторинге, понять модель, я хотел бы представить (дов…
22 апр '10 в 11:17
1 ответ

Класс Moose как тип атрибута?

Есть ли способ ограничить значение атрибута именем класса, которое наследуется от какого-то определенного класса? has thing_class => ( ??? => Some::Base::Class, ); Здесь действительное значение для thing_class должно быть Some::Base::Class или…
04 фев '16 в 00:35
2 ответа

Почему я должен загрузить класс Perl, чтобы использовать его объект, десериализованный из YAML?

Я пытался сериализовать некоторые (Moose) объекты с YAML - просто с помощью YAML Dump() а также Load(), После загрузки сериализованного объекта он не работал, пока я не добавил use оператор с оригинальным именем модуля. Если я не использую use Я не …
27 окт '10 в 12:22
3 ответа

Perl Moose: атрибут устанавливается только когда упоминается в подпрограмме BUILD

У меня есть сценарий, который рекурсивно создает имена подкаталогов / файлов каталога и имена файлов в этих подкаталогах в виде объектов: package Dir; use Moose; use Modern::Perl; use File; use strict; use warnings; has 'path' => (is => 'ro', …
04 фев '17 в 00:52
2 ответа

Каков наилучший способ перегрузки строк на метод доступа атрибута Moose?

У меня есть класс, где я хочу применить перегрузку строки на его id приписывать. Однако Moose не допускает перегрузки строк в средствах доступа к атрибутам. Например: package Foo; use Moose; use overload '""' => \&id, fallback => 1; has 'i…
29 авг '11 в 12:49
1 ответ

Роли и читаемость кода

Улучшение использования ролей (Moo::Role или Role::Tiny или что-то еще) with qw( Some::Role Some::Other::Role ); ... some_roles_method(); просто явно импортировать функцию из класса mixin use Some::Role qw/some_roles_method/; ... some_roles_method()…
12 июл '17 в 16:39
3 ответа

Как мне составить существующую роль Moose в класс во время выполнения?

Скажем, я определяю абстрактные реализации My::Object и конкретной роли My::Object::TypeA и My::Object::TypeB. Из соображений удобства обслуживания я бы не хотел иметь жестко закодированную таблицу, которая бы смотрела на тип объекта и применяла рол…
08 июн '10 в 19:44
1 ответ

Предоставление сахарных * и * объектных методов в роли Moose

Я работаю над ролью Moose, которая позволяет потребляющему классу генерировать XML на основе опции 'xml_path', указанной для одного или нескольких атрибутов, например: package MooseX::Role::EmitsXML::Trait::HasXMLPath; use Moose::Role; has xml_path …
13 авг '15 в 14:50
1 ответ

Как мне получить все аргументы, передаваемые методу с помощью MooseX::Method::Signatures?

Если я использую MooseX::Method::Signatures и я хочу передать все аргументы во второй метод, я должен явно перечислить их снова: method foo (Str :$bar!, Int: :$baz!) { ... return $self->_foo2(bar => $bar, baz => $baz); } Было бы хорошо, есл…
29 май '14 в 18:33
2 ответа

Состав атрибутов класса Perl?

Предположим, у меня есть несколько ролей, каждая из которых определяет набор элементов: package A; use Moose::Role; sub items () { qw/apple orange/ } package B; use Moose::Role; with 'A'; sub items () { qw/watermelon/ } package C; use Moose::Role; s…
31 янв '11 в 11:42
1 ответ

Как использовать Perl Moose с плагинами для основного объекта?

Я новичок в Музе. Я должен создать объект, который должен загрузить несколько плагинов. Структура выглядит так: Главный объект -> некоторые общие функции Плагины -> расширения для основного объекта Плагины находятся в отдельной папке на сервере. Гла…
15 авг '12 в 13:23
1 ответ

Perl Moose добавляет атрибут экземпляра, а не атрибут класса

Мне нужно добавить атрибут в экземпляр класса Moose. В приведенном ниже коде, когда я создаю экземпляр класса Child и добавляю к нему атрибут "app", я обнаруживаю, что этот атрибут также добавляется при создании следующих экземпляров. Что я делаю не…
12 окт '14 в 09:41
2 ответа

Как заставить Moose возвращать экземпляр дочернего класса вместо своего собственного класса для полиморфизма

Я хочу создать универсальный класс, конструктор которого не будет возвращать экземпляр этого универсального класса, а экземпляр выделенного дочернего класса. Поскольку Moose выполняет автоматическое построение объектов, я не понимаю, возможно ли это…
08 июн '10 в 00:25
1 ответ

Perl MooseX::Method::Signatures внедряет пользовательский код во все методы

Я пытаюсь использовать MooseX::Method::Signatures и MooseX::Declare в приложении, мне нужно внедрить пользовательский код в начале каждого метода во время компиляции, а не во время выполнения: вместо этого: use MooseX::Declare; method check ($value)…
22 май '14 в 19:19
0 ответов

Moops lexical_has и значения по умолчанию

Я пытаюсь понять как lexical_has Атрибуты работают в Moops. Эта функция исходит от Lexical::Accessor и, насколько я понимаю, lexical_has функция может генерировать CODE ссылка на любой атрибут class может "лексически иметь" с помощью скалярной ссылк…
19 дек '14 в 02:38
1 ответ

Как обновить мета-информацию унаследованных классов лося?

Я не знаю, правильно ли я задал этот вопрос, но я постараюсь объяснить. У меня есть базовый класс MyClass.pm: use MooseX::Declare; class MyClass { method test_it { for (__PACKAGE__->meta->get_all_methods){ print $_->name . "\n"; } } } И еще…
12 янв '11 в 15:47
1 ответ

Атрибут Moose существует

Я пытаюсь перебрать атрибуты объекта Moose, печатая значение атрибутов, не вызывая ленивых компоновщиков (хотя печатая, если существует значение атрибута). Мой код до сих пор выглядит так: for my $attr ($object->meta->get_all_attributes) { my …
06 фев '14 в 10:59