$post =~ s/\n/<br>\n/g;

ought to do the job. Or (depending on where you like your <br>'s):

$post =~ s/\n/\n<br>/g;

Note that I'm assuming that you would like to retain the new-lines so the contents of $post remain easily readable. If not, just drop the   \n   on the right side of the substitution.

There may be some folks who will be made nervous by the match on \n. If so, just remember that the infamous   /s   and   /m   qualifiers only affect matches with '.' on the one hand and ^ and $ on the other. \n matches mid-stream new-lines without any help from modifiers.

Update: See my answer to gryphon for the spiffier solution:

      $post =~ s/$/<br>/mg;


In reply to Re: Replace new line char with br by dvergin
in thread Replace new line char with br by HTTP-404

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.