Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: Multiple if-else statements using C-style ternary operator

by spazm (Monk)
on Jul 11, 2011 at 22:46 UTC ( #913795=note: print w/ replies, xml ) Need Help??


in reply to Multiple if-else statements using C-style ternary operator

my $message = $status == 2 ? 'HIGH' : $status == 1 ? 'MODERATE' : 'LOW' print $message

Depending on the depth of status, you may want to use a hash

my %status_message = { 2 => 'HIGH', 1=>'MODERATE', 0=>'LOW' }; my $message = $status_message{ $status } || 'LOW';
Or even a standard array if the values really are ints in a 0..n range.
my @status_messages = qw( LOW MODERAGE HIGH ); my $message = $status_messages[$status] || 'LOW';
These are both made a little more odd by the the inclusiveness of the default "LOW" value. Your demo code makes message "LOW" for any status other than 1 or 2.


Comment on Re: Multiple if-else statements using C-style ternary operator
Select or Download Code
Re^2: Multiple if-else statements using C-style ternary operator
by JavaFan (Canon) on Jul 11, 2011 at 23:04 UTC
    my %status_message = { 2 => 'HIGH', 1=>'MODERATE', 0=>'LOW' };
    That's not what you want. That creates a hash with a key of the form "HASH(0xDEADBEEF)", and an undefined value has the value.

    Perhaps you intended to write paren instead?

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://913795]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (13)
As of 2015-07-02 14:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (41 votes), past polls