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


in reply to Re: Determing whether a regexp has capturing matches
in thread Determing whether a regexp has capturing matches

D'oh. Of course. Thanks.
sub has_captured_matches { return $#+ };

Replies are listed 'Best First'.
Re^3: Determing whether a regexp has capturing matches
by kyle (Abbot) on Feb 27, 2007 at 16:08 UTC

    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.