in reply to Re: Efficiency issues in text parsing
in thread replacing text in specific tags

Have a look at Writeup Formatting Tips.
To your problem: The following program did the trick for me:
#!perl use strict; use warnings; { # braces for localization of $/ local $/ = '<p>'; # end of record is now <p> print scalar <DATA>; # first chunk contains everything before first <p> tag, just pri +nt for (<DATA>) { s@([\d\D]*?</p>)@ my $var = $1; $var =~ s!\n! !g; $var @e; # substitute newlines by spaces before the closing </p> tag print; } } __DATA__ This is to test. this is to test <p>This is to test. This is to test</p> <p>This is to test. This is to test</p> This is to test. this is to test
Hope this helped.
CombatSquirrel.
Entropy is the tendency of everything going to hell.

Replies are listed 'Best First'.
Re: Efficiency issues in text parsing
by texuser74 (Monk) on Aug 27, 2003 at 06:25 UTC
    Your code does the magic. Thanks you very much

    but one small doubt: what does "$var @e;" mean, particularly "@e", what does it mean here.

    can you please suggest me some good perl book to handle this kind of stuffs.

    once again, thanks a lot

      The "@" is just the seperator for the RegEx which starts with "s@". The "e" is a modifier that specifies that the substitution part should be evaluated and the result be taken as the real substitute. And since the last line is always the return value, I just put $var as the last value, because it contains the substitue.
      Cheers,
      CombatSquirrel.
      Entropy is the tendency of everything going to hell.
        Hi, I am using

        $/="^Z";

        $*=1;

        for switching ON the multiline mode in my file while doing some regular expression find and replace.

        How to switch it OFF.

        Is it possible to ON and OFF the mode in the same script.

        please advice