in reply to Nested grouping or capturing inside capturing

This is another case (IMO) where two statements would be both
  1. more elegant (because more readable & maintainable)
  2. and...less subject to brain-cramp, whilst originally writing it

Why not use split as the first; then s/"// each element of the resultant (split) array as the second step prior to printing. Yes, you can argue that that adds two steps (and you would not be UNjustified in making that argument) and thus slows the operation, IMO, the clarity is worth the cost.

Replies are listed 'Best First'.
Re^2: Nested grouping or capturing inside capturing
by eddor1614 (Beadle) on Nov 22, 2011 at 20:01 UTC

    That was exactly what I did a few months ago. And today I spend a few minutes trying to find out why I put s/"//g:

    foreach (<DATA>) { ($a,$b,$c) = ($3,$2,$1) if /^(\w+)\s(\S+)\s("([^"]+)"|(\w+))/; $a =~ s/"//g; . .

    I thought that if I need to match 3 fields, there should by a regexp that sets $1, $2 and $3. Just as a mental exercise. Thanks for your answer.