Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Help with Moose subtype

by neilwatson (Priest)
on Sep 18, 2012 at 01:34 UTC ( #994165=perlquestion: print w/replies, xml ) Need Help??
neilwatson has asked for the wisdom of the Perl Monks concerning the following question:

Greetings Sisters and Brothers, I'm learning Moose. I'm trying to set a subtype type but, having trouble. Please consider the following:
subtype 'cf_class', => as 'Str', => where { m/a-zA-Z0-9/ }, => message { 'Not a valid cf class' }; has 'class' => { is => 'rw', isa => 'cf_class' };
I'm getting this error:
Usage: has 'name' => ( key => value, ... ) at /home/neil/perl5/lib/per +l5/x86_64-linux-thread-multi/ line 74. Moose::has('Moose::Meta::Class=HASH(0x2b9fe98)', 'class', 'HAS +H(0x2a9ef98)') called at /home/neil/perl5/lib/perl5/x86_64-linux-thre +ad-multi/Moose/ line 382
My desire is to ensure that the parameter 'class' is limited to /a-zA-Z0-9/. What have I done wrong?

Neil Watson

Replies are listed 'Best First'.
Re: Help with Moose subtype
by mbethke (Hermit) on Sep 18, 2012 at 02:13 UTC
    You put the parameters to "has" in curlies instead of parentheses :)
Re: Help with Moose subtype
by tobyink (Abbot) on Sep 18, 2012 at 07:08 UTC

    mbethke is correct.

    You've also got a problem with your regular expression. Currently, the following string passes your type constraint, when I assume from your description that you expected it to fail:


    The regexp I think you want is: /^[A-Za-z0-9]*$/.

    perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://994165]
Approved by kevbot
Front-paged by Tanktalus
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (10)
As of 2017-02-27 17:13 GMT
Find Nodes?
    Voting Booth?
    Before electricity was invented, what was the Electric Eel called?

    Results (389 votes). Check out past polls.