Not sure if this makes things easier for you or not, but you could make use of Quantum::Superpositions:
#! /usr/bin/perl -w use strict; use Quantum::Superpositions; my @filter = ( any( qw/ aa ab / ), any( qw/ bb bc bd / ), any( qw/ cc cd / ), any( qw/ dd de df / ) ); my @tests = ( 'aa_bb123_cd_de', 'bc_bb_bd_be32', 'ab3_bc_cc45_df', 'aa12_aa34_aa56_aa78' ); for my $testcase ( @tests ) { if ( $testcase =~ /(\w{2})\d*_(\w{2})\d*_(\w{2})\d*_(\w{2})\d*/ ) { # Meets the form; does it pass the filter? if ( $1 eq $filter[0] && $2 eq $filter[1] && $3 eq $filter[2] && $4 eq $filter[3] ) { print "PASS: $testcase$/"; } else { print "FAIL: $testcase$/"; } } else { print "FAIL: $testcase: Incorrect format$/"; } } __END__
Those who know that they are profound strive for clarity. Those who
would like to seem profound to the crowd strive for obscurity.
--Friedrich Nietzsche
In reply to Re: hash keys and regex
by DamnDirtyApe
in thread hash keys and regex
by state-o-dis-array
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |