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

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

Replies are listed 'Best First'.
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.


      "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?

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

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (7)
As of 2016-10-23 12:32 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (301 votes). Check out past polls.