Actually, a blank line has only one line separator (like any other line). It just happens it doesn't have anything before it. Your solution removes a single line separator: take a look at the docs for chomp again-you have to be in paragraph mode to remove all trailing newlines. There's nothing to say that there might be more than one of those. That your solution is consistent with the OP's similarly broken code is little consolation.

Your solution misses because you make assumptions about the input, and those aren't warranted. You can fix that with \z, which makes the regex do exactly what the poster wanted and takes so little effort, and best of all, doesn't assume anything else about the provenance of the input. Are you arguing against something that absolutely solves the problem over something that might not when the clever cracker or ill designed program tries to get around it?

C'mon, the fix is simple. Just use it and be right. :)

--
brian d foy <brian@stonehenge.com>
Subscribe to The Perl Review

In reply to Re^4: how should i test whether a string contains between 6 and 20 letters and numbers by brian_d_foy
in thread how should i test whether a string contains between 6 and 20 letters and numbers by keiusui

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.