I like your idea. It's well suited for the example
situation. But...
It doesn't scale.
If you have a long list of fields to test, maybe an
unknown number of fields, it makes sence to stop
checking in the moment you find a mismatch.
This sub (that I use in a project) is both generic and scales well. It's not as Perlish beautiful as some examples, but it's quick. As you will see, it's part of a module.
######################################################## # Return true if all parameters are either defined or # undefined. Return false if there is a mix. ######################################################## sub defined_all_or_none { #my $self=shift; # This is a module, remember? shift; @_||(return 1); if(defined($_[0])) { for(@_) { unless(defined) { return 0; } } } else { for(@_) { if(defined) { return 0; } } } 1; }
Update:
Seeing it on the screen made me see clearer. :-)
The statement:
should be reduced to:my $self=shift; # This is a module, remember?
since $self is redundant. Sorry about that.shift;
f--k the world!!!!
/dev/world has reached maximal mount count, check forced.
Edit Masem 2001-07-13 - Code Tags
In reply to Re: Re: Nicer If...
by Biker
in thread Nicer If...
by SilverB1rd
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |