in reply to Re^2: Match Numeric Range
in thread Match Numeric Range
This kind of thing can be okay for progressive checking. I normal dislike this style of code/logic but it seems a good fit for this kind of problem.
if ( $range > 500 ) { WAT_OP(); } elsif ( $range >= 425 ) { some_op(); } elsif ( $range > 400 ) { some_other_op(); } elsif ( $range > 300 ) { exit 0; } else { complete_tree_op(); }
You can also do something more dispatchy–
my @action_tree = ( { test => sub { $_[0] >= 300 && $_[0] <= 400 }, action => sub { print "GUDNITES\n"; CORE::exit(0 +) } }, { test => sub { $_[0] >= 425 && $_[0] <= 500 }, action => sub { print "OHAI\n" } } ); while ( my $signal = <SIGNAL_SOURCE> ) { $_->{test}->($signal) && $_->{action}->() for @action_tree; }
I'm not advocating either, or that second style of terseness, or any style or approach for that matter. Just expanding the library of options. :P
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^4: Match Numeric Range
by PilotinControl (Pilgrim) on Aug 18, 2015 at 14:39 UTC |