tilly: The author of the tutorial may have been trying to show off, but his/her answer is more correct than the answer that d4vis provided. What happens with the following?

'Who\'s going to the store?" "Us," she replied."'

Yeah, I know. "She" is using pitiful grammar, but it's all I could come up with on the spur of the moment.

Here, you lose capitalization with d4vis's regex. The unknown author came up with a nifty trick to preserve capitalization. However, it's not very clear. I'm also wondering if some versions of locale might break it depending upon the alphabet used.

Instead, I'd use something like the following (which I feel is more clear -- but untested):

s/\b([Uu])s\b/$1 eq 'U' ? Them : them/eg;
Cheers,
Ovid

Update: Oy! That's what I get for untested code. I guess tilly and I will send the rest of the day spanking each other (figuratively speaking).

Here's the correct version of the regex (which I still think is clearer than tilly's solution):

$test =~ s/\b([Uu])s\b/$1 eq 'U' ? "Them" : "them"/eg;
Tilly's solution, however, is better with multiple substitutions.

In reply to (Ovid) Re: a simple substitution question by Ovid
in thread a simple substitution question by d4vis

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.