<div dir="ltr">There is actually an Enum type for Moose already: Moose::Meta::TypeConstraint::Enum[1]<br>(I'm thinking of writing emails in Spinx form.. curse you Meir!)<br><br>To use it, you simple write, from the documentation:<br>
use Moose::Util::TypeConstraints;<br> enum 'RGBColors', [ qw(red green blue) ];<br><br>I would personally write it as such:<br> enum RBGColors => [ qw/red green blue/ ];<br><br>I think it's more readable. :)<br>
<br>The enum type constraint is documented here:<br><a href="https://metacpan.org/module/Moose::Util::TypeConstraints">https://metacpan.org/module/Moose::Util::TypeConstraints</a><br><br><br>[1] <a href="https://metacpan.org/module/Moose::Meta::TypeConstraint::Enum">https://metacpan.org/module/Moose::Meta::TypeConstraint::Enum</a><br>
<br><br><br><div class="gmail_quote">On Wed, Apr 4, 2012 at 9:08 AM, Dov Levenglick <span dir="ltr"><<a href="mailto:dov.levenglick@gmail.com">dov.levenglick@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I believe (after trying) that this won't work. Either I tried this<br>
wrong, or else Perl is looking for some module called MyEnum.pm<br>
<br>
<br>
Best Regards,<br>
Dov Levenglick<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
On Wed, Apr 4, 2012 at 09:40, Shmuel Fomberg <<a href="mailto:shmuelfomberg@gmail.com">shmuelfomberg@gmail.com</a>> wrote:<br>
> My experience with Moose is nil, but how about something like that:<br>
><br>
> my %enum = ( A => 0, B => 1, C => 2);<br>
><br>
> subtype 'MyEnum',<br>
> as 'Str',<br>
> where { exists $enum{$_} },<br>
> message { "Wrong Enum name: $_" };<br>
><br>
> And then:<br>
> coerce 'MyEnum',<br>
> from 'Int',<br>
> via { $enum{$_} };<br>
><br>
> Shmuel.<br>
><br>
> On Wed, Apr 4, 2012 at 3:27 PM, Dov Levenglick <<a href="mailto:dov.levenglick@gmail.com">dov.levenglick@gmail.com</a>><br>
> wrote:<br>
>><br>
>> Hi,<br>
>> I want to declare a 3 value'd enum equivalent - i.e. (mixing C and perl):<br>
>><br>
>> package My::Enum<br>
>> use Moose;<br>
>><br>
>> typedef enum {A, B, C} enum_t; // knowledge in C - how do I<br>
>> port this concept to Perl?<br>
>> has 'b' => (isa => 'enum_t', is => 'rw');<br>
>><br>
>> 1;<br>
>><br>
>><br>
>> How would one go about doing that<br>
>><br>
>><br>
>> Best Regards,<br>
>> Dov Levenglick<br>
>> _______________________________________________<br>
>> Perl mailing list<br>
>> <a href="mailto:Perl@perl.org.il">Perl@perl.org.il</a><br>
>> <a href="http://mail.perl.org.il/mailman/listinfo/perl" target="_blank">http://mail.perl.org.il/mailman/listinfo/perl</a><br>
><br>
><br>
><br>
> _______________________________________________<br>
> Perl mailing list<br>
> <a href="mailto:Perl@perl.org.il">Perl@perl.org.il</a><br>
> <a href="http://mail.perl.org.il/mailman/listinfo/perl" target="_blank">http://mail.perl.org.il/mailman/listinfo/perl</a><br>
_______________________________________________<br>
Perl mailing list<br>
<a href="mailto:Perl@perl.org.il">Perl@perl.org.il</a><br>
<a href="http://mail.perl.org.il/mailman/listinfo/perl" target="_blank">http://mail.perl.org.il/mailman/listinfo/perl</a><br>
</div></div></blockquote></div><br></div>