David Gilden am Samstag, 11. Februar 2006 21.54:
> I would like to loop through 'all' acceptable values in an array (my white
> list) then assign a pass or fail value.
>
> In the following code does not accomplish this, it needs to go through the
> entire list before assigning a value.
>
>
> #!/usr/bin/perl
>
> $valToTest = "ac";
>
> @myGoodList = ("10_rater","36_600","ac","cr914","ec12","fairwind");
> $testOk = -1;
>
> foreach my $cat  (@myGoodList){
> if ($cat =~ /$valToTest/) {
>     $testOk = 1;
>         next;
>     } else {
>         $testOk = -1;
>         # value not in list
>         last;
>     }
> }
>
> print "$testOk\n";
>
>
> I am going to guess that the foreach is not the right way to address this
> problem.

I think your quess is ok - IF you test for equalty, not matching.

Just use a hash; then you don't have to inspect every value, but can just test 
for existence. Something like

#!/usr/bin/perl
use strict;       # don't forget
use warnings; # those two

my $testval='ac'; # no need for double quotes

my %good=map {$_=>1}
         qw/10_rater 36_600 ac cr914 ec12 fairwind/;

my $ok=exists $good{$testval} ? 1 : 0;
# or simply: my $ok=exists $good{$testval}

print 'Test result: ', $ok;


hth,
joe

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to