Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re^3: Moose and default values

by choroba (Abbot)
on Feb 20, 2013 at 22:34 UTC ( #1019855=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Moose and default values
in thread Moose and default values

Probably you can use it outside Moose, too.

لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ


Comment on Re^3: Moose and default values
Re^4: Moose and default values
by tobyink (Abbot) on Feb 20, 2013 at 22:39 UTC

    Indeed; it has no ties to Moose. It's simply a function that takes a list and returns a (possibly smaller) list. While it's handy to use it with Moose/Mouse/Moo constructors, it can be used with any functions that take a list of key-value pairs that you want to filter out undefs from.

    package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name
      It's nice (and only 10 lines of code :-=).

      But say I now wanted not only undefs but everything that is false (e.g. also an empty string) to trigger the default?

      Does Moose not have any mechanics for that?

        Maybe something along the lines of:

        around BUILDARGS => sub { my $orig = shift; my $self = shift; my $params = $self->$orig(@_); $params->{$_} || delete $params->{$_} for qw/ foo bar /; return $params; };

        This will discard false parameters for the "foo" and "bar" attributes.

        package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1019855]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (9)
As of 2014-07-30 15:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (235 votes), past polls