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__
_______________
DamnDirtyApe
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
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|