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

Ovid has asked for the wisdom of the Perl Monks concerning the following question:

Currently, I build regexes in small chunks, adding functionality until they work. While this works fine for general programming, it's less efficient for a regex due to my inability to easily step through them when they break. Sometimes I write some pretty hairy regexes. Two of the regexes I've recently had to create are below. Unfortunately, I can't just glance at them and understand what they do, despite the fact that I wrote them.
die "Bad number!\n" if $number !~ /(?:[\d]{1,6}\.[\d]{0,5})|(?:[\d]{0,5}\.[\d]{1,6})|( +?:[\d]{1,7})/; $count ++ if $stuff =~ /(?i:p)rods(?:\\s+(?:[^&]|&(?!gt;))+)?/;
Is there some way to watch the regex engine as it goes along? I'm thinking something similar to the Perl's debugger.

I actually use the /x modifier and comment them heavily, which helps. I've reduced them to one line above for effect.

Cheers,
Ovid

Join the Perlmonks Setiathome Group or just go the the link and check out our stats.