in reply to Operator for "these expressions, in any order"
use Algorithm::Permute; my @patterns = (); my $p = new Algorithm::Permute(['X', 'Y', 'Z']); while (@res = $p->next) { push @patterns, join('', @res); } my $pattern = join '|', @patterns; print "$pattern\n"; # give the pattern a test... while (<DATA>) { chomp; print "$_ is ", /^(?:$pattern)$/ ? 'good' : 'bad', "\n"; } __DATA__ XYX XYZ ZYY ZXY ZYX XXYZ
ZYX|YZX|YXZ|ZXY|XZY|XYZ XYX is bad XYZ is good ZYY is bad ZXY is good ZYX is good XXYZ is bad
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Operator for "these expressions, in any order"
by Abigail-II (Bishop) on Feb 17, 2004 at 15:58 UTC | |
by thor (Priest) on Feb 17, 2004 at 17:21 UTC | |
by Roger (Parson) on Feb 17, 2004 at 15:59 UTC | |
|
Re: Re: Operator for "these expressions, in any order"
by jsalvata (Initiate) on Feb 17, 2004 at 23:23 UTC |