В Moose v1.x я имел обыкновение делать это:
package Class;
use Test::More tests => 1;
use Moose;
use MooseX::Types::Moose qw/Undef Str/;
eval {
has 'trait_boom' => (
is => 'rw'
, isa => Str | Undef
, default => ''
, traits => ['String']
);
};
ok ( !$@, "Created attr trait_boom, a type union of Str and Undef\n$@" );
Однако он больше не работает с Moose 2.x.Я предполагаю, что это ошибка .Почему Moose нарушил обратную совместимость?Есть ли другой способ сделать эту работу?Я хочу, чтобы это было либо Undef
, либо Str
.Я не хочу приводить Undef
к пустой строке, хотя.
Я спрашиваю только здесь, потому что очевидно, что магнит сломался
17:43 [perl2] -!- ERROR Closing Link: 64.200.109.13 (Banned)