http://www.perlmonks.org?node_id=210763


in reply to terrible code about array matching...

I'm not exactly sure what you're trying to do but if you're only trying to validate parameters, something like the following would work:
use strict; use warnings; my %valid = ( peace => 0, child => 1, free => 2, love => 3, enjoy => 4 ); my @test = qw(freely enjoy love); my @parms; for my $test (@test) { if (exists $valid{$test}) { push (@parms, $test); } else { print "\n\nSkipping bad argument '$test'!!!\n\n"; } } print "\n\nValid parms:\n"; print " ", pack('A8',$_), ": position: $valid{$_}\n" for @parms;
Update: After rereading a few times, I realize that the poster needs what chromatic suggested. /me finishes coffee before responding to anymore posts.

--Jim