Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Re^2: grep trouble

by LanX (Archbishop)
on Apr 17, 2011 at 14:03 UTC ( #899813=note: print w/replies, xml ) Need Help??

in reply to Re: grep trouble
in thread grep trouble

Are there any reasonable use cases/idioms for this feature?

If not, shouldn't there be a pragma to disable these edge cases?

Cheers Rolf

Replies are listed 'Best First'.
Re^3: grep trouble
by davido (Cardinal) on Apr 17, 2011 at 16:08 UTC

    It could be a convenience for a switch with fall-through, or along similar (but more oddball lines), possibly an implementation of Duff's Device.



      IMHO sounds like far less than 1‰ of all CPAN modules might rely on this.


      OK found another use-case, I just recently had the need in my ORG-Parser to distinguish the range delimiters and the range "body" with a flip-flop-operator, like for ORG's "BEGIN/END"-blocks.

      This can be simplified (i.e. more DRY), if one has access to the last successful pattern:

      DB<114> for(0..99) {print if (/10/../20/ and not //)} 111213141516171819 DB<115> for(0..99) {print if (/10/../20/)} 1011121314151617181920 DB<116> for(0..99) {print if (/10/../20/ and //)} 1020

      I think that's a more frequent application, I even slightly remember seeing it in Friedl's book.

      But I'd rather prefer an explicit special varą, something like $PATTERN or $&& (in analogy to $MATCH resp. $&) .

      Cheers Rolf

      1) an special var has the advantage that the regex itself can be accessed, e.g. printed.


      for limitations see update in Re^2: Extract table from a block of text (updated)

Re^3: grep trouble
by John M. Dlugosz (Monsignor) on May 14, 2011 at 16:09 UTC
    It furthermore won't match at the same place twice, being a special case for a zero-length match. So // is just perfect for splitting a string into individual character, using split. I did that just yesterday.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (4)
As of 2018-11-17 12:42 GMT
Find Nodes?
    Voting Booth?
    My code is most likely broken because:

    Results (202 votes). Check out past polls.