[Israel.pm] Moose question

Dov Levenglick dov.levenglick at gmail.com
Wed Apr 4 01:03:35 PDT 2012


Thanks you, one and all


Best Regards,
Dov Levenglick



On Wed, Apr 4, 2012 at 10:53, sawyer x <xsawyerx at gmail.com> wrote:
> Damn!
>
> You beat me to it... >:|
>
>
> On Wed, Apr 4, 2012 at 9:52 AM, Dotan Dimet <dotan at corky.net> wrote:
>>
>> Found Moose::Util::TypeConstraints via a search, it offers a simple enum
>> function.
>> The following worked as a one-liner:
>>
>> use Moose::Util::TypeConstraints;
>> enum q{Col}, [qw(red blue green)];
>>  no Moose::Util::TypeConstraints;
>>
>> package bob;
>> use Moose;
>>  has qw(color is rw isa Col);
>>
>> package main;
>> my $bob = bob->new(color => q{green});
>> print $bob->color; # prints "green"
>> $bob->color(q{yellow}); # dies
>> print $bob->color;
>>
>> The error you get when you set an invalid value is something like:
>> Attribute (color) does not pass the type constraint because: Validation
>> failed for 'Col' with value yellow at ...
>>
>>
>> On 04/04/2012 10:08 AM, Dov Levenglick wrote:
>>
>> I believe (after trying) that this won't work. Either I tried this
>> wrong, or else Perl is looking for some module called MyEnum.pm
>>
>>
>> Best Regards,
>> Dov Levenglick
>>
>>
>>
>> On Wed, Apr 4, 2012 at 09:40, Shmuel Fomberg <shmuelfomberg at gmail.com>
>> wrote:
>>
>> My experience with Moose is nil, but how about something like that:
>>
>> my %enum = ( A => 0, B => 1, C => 2);
>>
>> subtype 'MyEnum',
>>       as 'Str',
>>       where { exists $enum{$_} },
>>       message { "Wrong Enum name: $_" };
>>
>> And then:
>> coerce 'MyEnum',
>>       from 'Int',
>>       via { $enum{$_} };
>>
>> Shmuel.
>>
>> On Wed, Apr 4, 2012 at 3:27 PM, Dov Levenglick <dov.levenglick at gmail.com>
>> wrote:
>>
>> Hi,
>> I want to declare a 3 value'd enum equivalent - i.e. (mixing C and perl):
>>
>> package My::Enum
>> use Moose;
>>
>> typedef enum {A, B, C} enum_t;            // knowledge in C - how do I
>> port this concept to Perl?
>> has 'b' => (isa => 'enum_t',  is => 'rw');
>>
>> 1;
>>
>>
>> How would one go about doing that
>>
>>
>> Best Regards,
>> Dov Levenglick
>> _______________________________________________
>> Perl mailing list
>> Perl at perl.org.il
>> http://mail.perl.org.il/mailman/listinfo/perl
>>
>> _______________________________________________
>> Perl mailing list
>> Perl at perl.org.il
>> http://mail.perl.org.il/mailman/listinfo/perl
>>
>> _______________________________________________
>> Perl mailing list
>> Perl at perl.org.il
>> http://mail.perl.org.il/mailman/listinfo/perl
>>
>>
>>
>> --
>> This message has been scanned for viruses and
>> dangerous content by MailScanner, and is
>> believed to be clean.
>>
>> _______________________________________________
>> Perl mailing list
>> Perl at perl.org.il
>> http://mail.perl.org.il/mailman/listinfo/perl
>
>
>
> _______________________________________________
> Perl mailing list
> Perl at perl.org.il
> http://mail.perl.org.il/mailman/listinfo/perl


More information about the Perl mailing list