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
In Section
Seekers of Perl Wisdom