in reply to Determing whether a regexp has capturing matches

See perlvar for @- and @+.

Replies are listed 'Best First'.
Re^2: Determing whether a regexp has capturing matches
by adrianh (Chancellor) on Feb 27, 2007 at 16:03 UTC
    D'oh. Of course. Thanks.
    sub has_captured_matches { return $#+ };

      Keep in mind that $#+ is -1 when the pattern does not match, regardless of whether there are captures.

      "1234" =~ /(1)34/; print $#+, "\n"; "1234" =~ /134/; print $#+, "\n";

      That prints "-1" both times, and -1 is considered a "true" value.

        Keep in mind that $#+ is -1 when the pattern does not match, regardless of whether there are captures.

        Good point. I was just thinking of my context where I'm guaranteed a successful match.