in reply to Re: Nicer If...
in thread Nicer If...
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
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Re: Nicer If...
by suaveant (Parson) on Jul 13, 2001 at 17:28 UTC |