in reply to Re: Match range of number
in thread Match range of number

I don't see a reason to invoke the regex compiler for every match.

if ( m/^(\d+)(?(?{ $^N < $min || $^N > $max })(?!))$/ ){ print "$_ is between $min and $max\n"; }

$^N was introduced in 5.8. Using $1 would provide backwards compatibility if required.

Replies are listed 'Best First'.
Re^3: Match range of number
by moritz (Cardinal) on Nov 15, 2007 at 12:10 UTC
    $^N was introduced in 5.8. Using $1 would provide backwards compatibility.

    ... at the cost of generality. If you want to use such a snippet multiple times in a regex you have to keep track which capture to use.

    Actually I'm working on a module that generates regexes for matching integers, and that's one of the fallback solutions. When you don't know how your regex will be used, you can't rely on the number of the capture.