Using a bit for each test and a dispatch table may help:

use warnings; use strict; my $tName = 'Fred'; my $tHost = 'All'; my $tModule = 'Bobble'; my %dispatch = ( 0 => \&NoMatch, 1 => \&Name, 2 => \&Host, 3 => \&NameHost, 4 => \&Mod, 5 => \&NameMod, 6 => \&HostMod, 7 => \&NameHostMod, ); while (<DATA>) { chomp; my ($name, $host, $mod) = split; my $code = $name eq $tName || $tName eq 'All' ? 1 : 0; $code |= $host eq $tHost || $tHost eq 'All' ? 2 : 0; $code |= $mod eq $tModule || $tModule eq 'All' ? 4 : 0; $dispatch{$code}->($_); } sub NoMatch { print "NoMatch\n"; } sub Name { print "Name\n"; } sub Host { print "Host\n"; } sub NameHost { print "NameHost\n"; } sub Mod { print "Mod\n"; } sub NameMod { print "NameMod\n"; } sub HostMod { print "HostMod\n"; } sub NameHostMod { print "NameHostMod\n"; } __DATA__ Fred Wizzle Tangle Fred Plonk Bobble Joe Wizzle Bobble Bob Fizz Knot

Prints:

NameHost NameHostMod HostMod Host

DWIM is Perl's answer to Gödel

In reply to Re: Is there a Better work around rather than 9 If else Looping by GrandFather
in thread Is there a Better work around rather than 9 If else Looping by msk_0984

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.