On Sun, Oct 24, 2010 at 09:49:05AM -0700, Britton Leo Kerin wrote: > Package: perl > Version: 5.10.0-19lenny2 > Severity: normal
> Given: > > $tdl = 'dir call netrw#Explore(<count>,0,0+<bang>0,<q-args>) > ' > > This doesn't die: > > $tdl =~ s/^( augroup | buffer | command | dir | environment | event | > expression | file | shellcmd | function | help | > highlight | mapping | menu | option | tag | > tag_listfiles | var | custom | customlist ) \s+ > (.*) > / > $2/x or die "foo"; > > But this does: > > $tdl =~ s/^( augroup | buffer | command | dir | environment | event | > expression | file | shellcmd | function | help | > highlight | mapping | menu | option | tag | > tag_listfiles | var | custom | customlist ) > \s+ > (.*) > / > $2/x or die "foo"; > > The only different is the \s+ is on a line by itself in the second case. I can't quite reproduce this. As far as I can see, both of the substitutions succeed (don't die) on the original string, but if applied in the order you gave, the second one fails because the first one has changed the string. Could you please supply a test script as an attachment, and preferably trim irrelevant parts to make it easier to see the actual problem? It's possible that your inlining has broken some whitespace and hidden the issue. -- Niko Tyni [email protected] -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

