perl-PerlX-Maybe
Return a pair only if they are both defined


Moose classes (and some other classes) distinguish between an attribute being unset and the attribute being set to undef. Supplying a constructor arguments like this: my $bob = Person->new( name =>$name, age =>$age, ); Will result in the 'name' and 'age' attributes possibly being set to undef (if the corresponding '$name' and '$age' variables are not defined), which may violate the Person class' type constraints. (Note: if you are the _author_ of the class in question, you can solve this using MooseX::UndefTolerant. However, some of us are stuck using non-UndefTolerant classes written by third parties.) To ensure that the Person constructor does not try to set a name or age at all when they are undefined, ugly looking code like this is often used: my $bob = Person->new( defined $name ? (name =>$name) : (), defined $age ? (age =>$age) : (), ); or: my $bob = Person->new( (name =>$name) x!!(defined $name), (age =>$age) x!!(defined $age), ); A slightly more elegant solution is the 'maybe' function.

Artistic-1.0 OR GPL-1.0-or-later

cloud_download Downloads

Please select a product to see the available package versions:
Loading...
Loading package downloads...