sub find_pat { use re 'eval'; my $n = shift; my $re = qq{ (?{ local (@{[ map "\$c$_,", 1 .. $n ]}) = (0) x $n }) ^ }; $re .= qq{ (.+?) (?: @{[ join " |\n", map " \\$_ (?{ local \$c$_ = \$c$_ + 1 })", 1 .. $_ +]} )* } for 1 .. $n; $re .= qq{ (?(?{ @{[ join ' && ', map "\$c$_", 1 .. $n ]} })|(?!)) \$ }; return qr/$re/x; }
In reply to Pattern Finder by japhy
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |