in reply to Re^2: modifying a line in a file with some restrictions
in thread modifying a line in a file with some restrictions

Good point about the paragraph mode, but he's not reading anything from a file opened write-only.

However, if he was reading a paragraph, it wouldn't be the first line of the paragraph he would be replacing.

The text replace would be the last line of the paragraph plus the two or more newlines that delimited the paragraph. Somehow I doubt that this was his intention, but the point is mute until he manages to read something in.

Seems we both need to read perlop, and possibly perlre as well ....


Examine what is said, not who speaks.

The 7th Rule of perl club is -- pearl clubs are easily damaged. Use a diamond club instead.

  • Comment on Re: Re^2: modifying a line in a file with some restrictions

Replies are listed 'Best First'.
Re^4: modifying a line in a file with some restrictions
by Aristotle (Chancellor) on Jan 14, 2003 at 09:53 UTC
    The text replace would be the last line of the paragraph plus the two or more newlines that delimited the paragraph.
    Good catch about the (one!) newline, but I'm puzzled at how you arrive at other the conclusion. He is using /m which doesn't make the dot match newlines.
    $ perl -le'(join "\n", qw(foo bar baz)) =~ /(.*\n)/m && print $1' foo $ # note the embedded newline
    Yes, perlre is a good suggestion. ;-)

    Makeshifts last the longest.

      Usual way, I tried it:). I've never had occasion to make use of paragraph mode, hence my mistaking it for slurp mode, so I tried it out to see what the effect was and the code below was my test suite.

      Test code

      output


      Examine what is said, not who speaks.

      The 7th Rule of perl club is -- pearl clubs are easily damaged. Use a diamond club instead.

        Arrgh! Duh. I missed the $. Of course \n$ requires two consecutive newlines to match, which is only true at the end of the paragraph (and guaranteed to be true there due to the nature of paragraph mode), and since the . doesn't match newlines, the whole expression can only match the last line.

        Makeshifts last the longest.