<div dir="ltr">Damn!<br><br>You beat me to it... &gt;:|<br><br><div class="gmail_quote">On Wed, Apr 4, 2012 at 9:52 AM, Dotan Dimet <span dir="ltr">&lt;<a href="mailto:dotan@corky.net">dotan@corky.net</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
    
  
  <div style="direction:ltr" bgcolor="#FFFFFF" text="#000000">
    Found Moose::Util::TypeConstraints via a search, it offers a simple
    enum function.<br>
    The following worked as a one-liner:<br>
    <br>
    use Moose::Util::TypeConstraints;<br>
    enum q{Col}, [qw(red blue green)];<br>
     no Moose::Util::TypeConstraints;<br>
    <br>
    package bob;<br>
    use Moose;<br>
     has qw(color is rw isa Col);<br>
    <br>
    package main;<br>
    my $bob = bob-&gt;new(color =&gt; q{green});<br>
    print $bob-&gt;color; # prints &quot;green&quot;<br>
    $bob-&gt;color(q{yellow}); # dies <br>
    print $bob-&gt;color;<br>
    <br>
    The error you get when you set an invalid value is something like:<br>
    Attribute (color) does not pass the type constraint because:
    Validation failed for &#39;Col&#39; with value yellow at ...<div><div class="h5"><br>
    <br>
    On 04/04/2012 10:08 AM, Dov Levenglick wrote:
    <blockquote type="cite">
      <pre>I believe (after trying) that this won&#39;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 <a href="mailto:shmuelfomberg@gmail.com" target="_blank">&lt;shmuelfomberg@gmail.com&gt;</a> wrote:
</pre>
      <blockquote type="cite">
        <pre>My experience with Moose is nil, but how about something like that:

my %enum = ( A =&gt; 0, B =&gt; 1, C =&gt; 2);

subtype &#39;MyEnum&#39;,
      as &#39;Str&#39;,
      where { exists $enum{$_} },
      message { &quot;Wrong Enum name: $_&quot; };

And then:
coerce &#39;MyEnum&#39;,
      from &#39;Int&#39;,
      via { $enum{$_} };

Shmuel.

On Wed, Apr 4, 2012 at 3:27 PM, Dov Levenglick <a href="mailto:dov.levenglick@gmail.com" target="_blank">&lt;dov.levenglick@gmail.com&gt;</a>
wrote:
</pre>
        <blockquote type="cite">
          <pre>Hi,
I want to declare a 3 value&#39;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 &#39;b&#39; =&gt; (isa =&gt; &#39;enum_t&#39;,  is =&gt; &#39;rw&#39;);

1;


How would one go about doing that


Best Regards,
Dov Levenglick
_______________________________________________
Perl mailing list
<a href="mailto:Perl@perl.org.il" target="_blank">Perl@perl.org.il</a>
<a href="http://mail.perl.org.il/mailman/listinfo/perl" target="_blank">http://mail.perl.org.il/mailman/listinfo/perl</a>
</pre>
        </blockquote>
        <pre>_______________________________________________
Perl mailing list
<a href="mailto:Perl@perl.org.il" target="_blank">Perl@perl.org.il</a>
<a href="http://mail.perl.org.il/mailman/listinfo/perl" target="_blank">http://mail.perl.org.il/mailman/listinfo/perl</a>
</pre>
      </blockquote>
      <pre>_______________________________________________
Perl mailing list
<a href="mailto:Perl@perl.org.il" target="_blank">Perl@perl.org.il</a>
<a href="http://mail.perl.org.il/mailman/listinfo/perl" target="_blank">http://mail.perl.org.il/mailman/listinfo/perl</a>
</pre>
    </blockquote>
    <p><br>
    </p>
  <br></div></div><span class="HOEnZb"><font color="#888888">-- 
<br>This message has been scanned for viruses and
<br>dangerous content by
<a href="http://www.mailscanner.info/" target="_blank"><b>MailScanner</b></a>, and is
<br>believed to be clean.
</font></span></div>

<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></blockquote></div><br></div>