in reply to Re: Capturing parenthesis and grouping square brackets
in thread Capturing parenthesis and grouping square brackets

The Pörl community actually made me laugh :) . That last comment about asking all of this because I'm lazy wasn't supposed to be taken seriously. If that was really a concern for me I'd write in Python, not Perl. And switching from AZERTY to QWERTY is done easily enough. I do see where the joke went wrong though, it's not obvious that the [ and ] characters are actually extremely simple to type, and just require to hold one key while pressing the other. I should have thought this through.

My point with this meditation was actually about the unexpected behaviour that parenthesis may lead to in regexes. The only simple is example I could think about was the use of split, but I wondered if it couldn't have other repercussions.


Comment on Re^2: Capturing parenthesis and grouping square brackets
Re^3: Capturing parenthesis and grouping square brackets
by hdb (Parson) on Jun 18, 2013 at 07:15 UTC

    It is quite telling that you had to resort to split to find an example where the capturing feature of parantheses might lead to unexpected behavior. And how many programs that use split really utilize a regex rather than a simple record separator consisting of one or two characters?

    What is obvious to people and what is not, is far from obvious. Yes, parantheses are used to group items that belong together in expressions, also to express desired precedence. Perl programmers also expect them to capture parts of matches when used in regexes. A Perl beginner will not have problems with that feature most of the time. And my guess is that the beginner will switch from using $3 to $4 rather that using (?:...) (or [...]).

    So from my humble point of view, it is a non-issue. The over-riding principle should be that change involves costs and should be avoided unless the benefits significantly outweight these costs.

      You're certainly right about the fact that my difficulty to find something wrong with this feature speaks for itself. And I actually realized that were there other cases where using parenthesis might be significant (like in a token when you don't know what's in the upper level rules), named captures would make an easy way out.

      So from my humble point of view, it is a non-issue. The over-riding principle should be that change involves costs and should be avoided unless the benefits significantly outweight these costs.

      I'm not going to argue with that, the answers I received helped me see some of the aspects of the matter I might not have grasped on my own, and I do see now that this is indeed little trouble. I can go back to my regexes and be content to not only know how they work, but why it's OK that they work like that :)