Can tr///; be modified to do that?
No. tr/// has no notion of context (i.e, the adjacent characters). It works per-character only. You need s/// to do replacements in a context-sensitive manner.

It's unclear from your examples whether ABABAB should be lowercased.. Or if the capital letters in AAaaa should be lowercased, or if the entire "word" needs to be uppercase. Depending on your requirements, a simple substitution like s/([A-Z]{2,})/lc $1/ge will work. If the uppercase letters must all be the same letter, then you'll need a more complicated substitution. Here's a starting point:

my @foo = qw/AAAAAA Aaaa Aaaa AAA/; s/(([A-Z])\2+)/lc $1/ge for @foo; print "@foo\n"; # aaaaaa Aaaa Aaaa aaa
You may be able to do this with lookaheads as well. In fact, I'm sure we will see many clever ways to solve this problem ;)

blokhead


In reply to Re: transliteration by blokhead
in thread transliterate only more than one uppercase character in a row by grymater

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.