in reply to Why this regexp doesn't match nested parens?
See? The $x regex is looking for $main::x (although it doesn't give you a strict-breakage, since it's not looking for package names in the code that handles (??{ })), and it's empty, so you get a warning.use strict; use warnings; # DON'T turn off the uninit warning my $x = qr/(a(??{$x})?b)/; print "x1($1)\n" if "alphabet" =~ $x; print "x2($1)\n" if "caaabbbc" =~ $x; my $y; $y = qr/(a(??{$y})?b)/; print "y1($1)\n" if "alphabet" =~ $y; print "y2($1)\n" if "caaabbbc" =~ $y; __END__ output: Use of uninitialized value in pattern match (m//) at rx line 2. x1(ab) x2(ab) y1(ab) y2(aaabbb)
Take out the \A anchor, but also declare the variable first and then assign to it.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Why this regexp doesn't match nested parens?
by ccn (Vicar) on Apr 26, 2004 at 16:53 UTC |