> > Is there a better way to simplify the syntax when testing for multiple > > conditions? > > Your original code is the proper way to do it. All the other solutions > proffered are inferior, IMO.
Use 'or' and 'and' to remove clutter, they have different precedance and are often useful in this context. E.g. if ($string eq "First" or $string eq "Second" or $string eq "Third") { ... } > The suggestion of: > > if($something =~ /^(string0|string1|string2)$/) > > is not equivalent to your original condition. It's also likely to be > inefficient. I get 1 min 15.983sec for "normal" three condition if, and 52.305sse for a regex approach. My test code is: my $type = shift; my $iterate = 1000000; my $item = "lock"; if ($type eq "normal") { for (0..$iterate) { print " " if $item =~ /^(?:apple|banana|lock)$/; } } elsif ($type eq "regex") { for (0..$iterate) { print " " if $item eq "apple" or $item eq "banana" or $item eq "lock"; } } __END__ If in doubt, benchmark. It can produce non-intutive results! Guess I should have bothered to use Benchmark.pm The regex approach is common, and is often much clearer... being read as: "print something if item matches apple or banana or lock" Jonthan Paton __________________________________________________ Do You Yahoo!? Everything you'll ever need on one web page from News and Sport to Email and Music Charts http://uk.my.yahoo.com -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]