<div dir="ltr">Hi,<br><br><div class="gmail_quote">On Wed, Apr 4, 2012 at 10:52 AM, sawyer x <span dir="ltr">&lt;<a href="mailto:xsawyerx@gmail.com">xsawyerx@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">There is actually an Enum type for Moose already: Moose::Meta::TypeConstraint::Enum[1]<br>(I&#39;m thinking of writing emails in Spinx form.. curse you Meir!)<br><br></div></blockquote><div><br>You mean reStructuredText, anyway: muwhahaha ;-)<br>
 </div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">To use it, you simple write, from the documentation:<br>

    use Moose::Util::TypeConstraints;<br>    enum &#39;RGBColors&#39;, [ qw(red green blue) ];<br><br>I would personally write it as such:<br>    enum RBGColors =&gt; [ qw/red green blue/ ];<br><br>I think it&#39;s more readable. :)<br>


<br>The enum type constraint is documented here:<br><a href="https://metacpan.org/module/Moose::Util::TypeConstraints" target="_blank">https://metacpan.org/module/Moose::Util::TypeConstraints</a><br><br><br>[1] <a href="https://metacpan.org/module/Moose::Meta::TypeConstraint::Enum" target="_blank">https://metacpan.org/module/Moose::Meta::TypeConstraint::Enum</a><div>
<div class="h5"><br>

<br><br><br><div class="gmail_quote">On Wed, Apr 4, 2012 at 9:08 AM, Dov Levenglick <span dir="ltr">&lt;<a href="mailto:dov.levenglick@gmail.com" target="_blank">dov.levenglick@gmail.com</a>&gt;</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&#39;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><div><br>
<br>
<br>
On Wed, Apr 4, 2012 at 09:40, Shmuel Fomberg &lt;<a href="mailto:shmuelfomberg@gmail.com" target="_blank">shmuelfomberg@gmail.com</a>&gt; wrote:<br>
&gt; My experience with Moose is nil, but how about something like that:<br>
&gt;<br>
&gt; my %enum = ( A =&gt; 0, B =&gt; 1, C =&gt; 2);<br>
&gt;<br>
&gt; subtype &#39;MyEnum&#39;,<br>
&gt;       as &#39;Str&#39;,<br>
&gt;       where { exists $enum{$_} },<br>
&gt;       message { &quot;Wrong Enum name: $_&quot; };<br>
&gt;<br>
&gt; And then:<br>
&gt; coerce &#39;MyEnum&#39;,<br>
&gt;       from &#39;Int&#39;,<br>
&gt;       via { $enum{$_} };<br>
&gt;<br>
&gt; Shmuel.<br>
&gt;<br>
&gt; On Wed, Apr 4, 2012 at 3:27 PM, Dov Levenglick &lt;<a href="mailto:dov.levenglick@gmail.com" target="_blank">dov.levenglick@gmail.com</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hi,<br>
&gt;&gt; I want to declare a 3 value&#39;d enum equivalent - i.e. (mixing C and perl):<br>
&gt;&gt;<br>
&gt;&gt; package My::Enum<br>
&gt;&gt; use Moose;<br>
&gt;&gt;<br>
&gt;&gt; typedef enum {A, B, C} enum_t;            // knowledge in C - how do I<br>
&gt;&gt; port this concept to Perl?<br>
&gt;&gt; has &#39;b&#39; =&gt; (isa =&gt; &#39;enum_t&#39;,  is =&gt; &#39;rw&#39;);<br>
&gt;&gt;<br>
&gt;&gt; 1;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; How would one go about doing that<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Best Regards,<br>
&gt;&gt; Dov Levenglick<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Perl mailing list<br>
&gt;&gt; <a href="mailto:Perl@perl.org.il" target="_blank">Perl@perl.org.il</a><br>
&gt;&gt; <a href="http://mail.perl.org.il/mailman/listinfo/perl" target="_blank">http://mail.perl.org.il/mailman/listinfo/perl</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Perl mailing list<br>
&gt; <a href="mailto:Perl@perl.org.il" target="_blank">Perl@perl.org.il</a><br>
&gt; <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" target="_blank">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></div></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><br clear="all"><br>-- <br><div dir="ltr">Meir Kriheli<br><a href="http://meirkriheli.com" target="_blank">http://meirkriheli.com</a><br>
</div><br>
</div>