Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re^3: Capturing parenthesis and grouping square brackets

by hdb (Monsignor)
on Jun 18, 2013 at 07:15 UTC ( [id://1039522]=note: print w/replies, xml ) Need Help??


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

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.

Replies are listed 'Best First'.
Re^4: Capturing parenthesis and grouping square brackets
by Eily (Monsignor) on Jun 18, 2013 at 11:24 UTC

    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 :)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1039522]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (4)
As of 2024-03-29 11:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found