Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

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
[LanX]: already?
[erix]: I don't know really. I thought so.
[LanX]: April 16th
[erix]: ah no, 16 april. some time to go yet :)
[LanX]: I hate resurrection ... my back aches
erix practices self-crucifixion but keeps getting get stuck at the one loose hand stage...
LanX has seen this in action ... pope should claim copyright infringement
[LanX]: dunno how to link image search

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (11)
As of 2017-03-23 09:04 GMT
Find Nodes?
    Voting Booth?
    Should Pluto Get Its Planethood Back?

    Results (285 votes). Check out past polls.