Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: Trying to compare a string...

by kcott (Canon)
on Oct 18, 2013 at 08:25 UTC ( #1058722=note: print w/replies, xml ) Need Help??

in reply to Trying to compare a string...

G'day calebcall,

A non-empty string (except '0') will always be TRUE in a boolean context. So, 'Sci-Fi' will always be TRUE. Therefore, even if $genres[0] eq 'Science Fiction' was FALSE, $genres[0] eq 'Science Fiction' || 'Sci-Fi' would always be TRUE, and (with the short-circuiting nature of '||') || 'Fantasy' will never be tested.

The same will be true for those other conditions. You might want to consider something like this (untested):

my $genre = $genres[0]; for ($genres[0]) { /^(?:Science Fiction|Sci-Fi|Fantasy)$/ && $genre = 'Sci-Fi & Fanta +sy'; /^(?:Action|Adventure|War)$/ && $genre = 'Action & Adventure'; /^(?:Kids|Family)$/ && $genre = 'Kids & Family'; }

-- Ken

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1058722]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (11)
As of 2017-03-30 10:28 GMT
Find Nodes?
    Voting Booth?
    Should Pluto Get Its Planethood Back?

    Results (356 votes). Check out past polls.