Beefy Boxes and Bandwidth Generously Provided by pair Networks vroom
Syntactic Confectionery Delight
 
PerlMonks  

Re: Restarting counters in text

by Jasper (Chaplain)
on Aug 10, 2006 at 11:27 UTC ( #566589=note: print w/ replies, xml ) Need Help??


in reply to Restarting counters in text

further to the other comment (correcting != to !~, I guess), if you have the whole content stored and sub out all instances of <exm>, then the second resetting line will never happen.

You need to do it line by line, and s///s does the whole thing at once.

edit This is utter nonsense, of course. What I meant to say was:

then the second resetting line will ALWAYS happen.

I don't know what way these lines are coming in - whether he's getting blocks of code with exm's, and never gets a second line containing exms that he wants to be contiguous. I've no idea, but I had sort of confused myself a bit.

Sorry for the late edit


Comment on Re: Restarting counters in text
Re^2: Restarting counters in text
by udinakar (Novice) on Aug 10, 2006 at 11:35 UTC
    Hi Further to the above comments. Here is the code that might work for you.
    $_ =~ s/<exm>/'<exm num="'.$exmno++.'">'/egs; if ($_ !~ /^<exm.*?$/) { $exmno=0; }
    Refer for the syntax rules before any thing fails :-) -Dinakar

    Edited - Added code tags (davorg)

      Please use <code> tags to make your code easier to read.

      if ($_ !~ /^<exm.*?$/)

      The ".*?$" on the end of that regex is pointless.

      --
      <http://dave.org.uk>

      "The first rule of Perl club is you do not talk about Perl club."
      -- Chip Salzenberg

        Opps It was redundant. I agree . Thanks for spotting :) Dinakar

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (5)
As of 2014-04-21 04:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (490 votes), past polls