in reply to alternatives to if and series of elsif
I prefer davidrw's map method, for this comparision, but in case anyone stumbles upon this and wants an alternative - you can use a hash instead:
my ($points, $quota) = @_; my %compare = ( 18000 => 24, 16000 => 23, 14000 => 22, ... ); for my $key (sort {$b <=> $a} keys %compare) { if ($points > $key and $quota < $compare{$key}) { return $compare{key}; } } return 15;
Check out QM's reply for a better example
Update: it doesn't work for 16626 => 21, because it assumes the keys increment in conjuction with the values, which 16626 => 21 breaks. Added link.
"Cogito cogito ergo cogito sum - I think that I think, therefore I think that I am." Ambrose Bierce
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: alternatives to if and series of elsif
by QM (Parson) on Jul 05, 2005 at 20:10 UTC | |
by kutsu (Priest) on Jul 05, 2005 at 20:17 UTC | |
by QM (Parson) on Jul 05, 2005 at 20:49 UTC |
In Section
Seekers of Perl Wisdom