Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: No \G for s///g ?

by blakem (Monsignor)
on Mar 21, 2003 at 21:13 UTC ( #245009=note: print w/ replies, xml ) Need Help??


in reply to No \G for s///g ?

\G ... is only supported for m//g, not s///g

I didn't dig into your regex, but I think \G is supported for s///g;

$ perl -le '$_="abc def"; print; s/\G\w/X/g; print' abc def XXX def
-Blake


Comment on Re: No \G for s///g ?
Download Code
Re^2: No \G for s///g ? (oops)
by tye (Cardinal) on Mar 21, 2003 at 21:52 UTC

    Thanks! I thought I'd used that before but perlop having several examples of m/\G.../g and no examples of s/\G...//g and no mention of \G in the s/// section combined to make me think maybe that was the problem (as I was posting -- writing up a problem always brings new solutions to mind, ya know).

    I verified that this works on my version of Perl as well.

    I'd been meaning to post this for a week and finally had a few minutes while waiting for stuff to compile. This response got me to take some time I didn't have to write up some test cases. I must have had an unseen bug in the code when I was testing before because it works fine now.

    Thanks, blakem.

                    - tye

      Try setting $len to 5. You'll see that the 'tight' version fails to wrap correctly under certain circumstances like this

      Wrapping: @[0;7mCoruscate@[0m says this is a test of the line wrapping code Tight code1: @[0;7mCoruscate@[0m says this is a test of the line wrapping code Tight code: @[0;7mCorus cate@[0m says this is a test of the line wrapp ing code

      which suggested to me that the regexes be executed in opposite order

      Wrapping: @[0;7mCoruscate@[0m says this is a test of the line wrapping code Tight code1: @[0;7mCorus cate@[0m says this is a test of the line wrapp ing code Tight code: @[0;7mCorus cate@[0m says this is a test of the line wrapp ing code

      which seems to do the trick. I believe the first regex gets stymied by lines that have to be split many times at a space, as well as being split many times inside a word.


      ---
      demerphq


        Good catch. Thanks.

                        - tye

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (5)
As of 2015-07-05 02:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (60 votes), past polls