=over =item lc EXPR X X =item lc Returns a lowercased version of EXPR. If EXPR is omitted, uses L|perlvar/$_>. my $str = lc("Perl is GREAT"); # "perl is great" What gets returned depends on several factors: =over =item If C is in effect: The results follow ASCII rules. Only the characters C change, to C respectively. =item Otherwise, if C for C is in effect: Respects current C locale for code points . Starting in v5.20, Perl uses full Unicode rules if the locale is UTF-8. Otherwise, there is a deficiency in this scheme, which is that case changes that cross the 255/256 boundary are not well-defined. For example, the lower case of LATIN CAPITAL LETTER SHARP S (U+1E9E) in Unicode rules is U+00DF (on ASCII platforms). But under C (prior to v5.20 or not a UTF-8 locale), the lower case of U+1E9E is itself, because 0xDF may not be LATIN SMALL LETTER SHARP S in the current locale, and Perl has no way of knowing if that character even exists in the locale, much less what code point it is. Perl returns a result that is above 255 (almost always the input character unchanged), for all instances (and there aren't many) where the 255/256 boundary would otherwise be crossed; and starting in v5.22, it raises a L warning. =item Otherwise, If EXPR has the UTF8 flag set: Unicode rules are used for the case change. =item Otherwise, if C or C is in effect: Unicode rules are used for the case change. =item Otherwise: ASCII rules are used for the case change. The lowercase of any character outside the ASCII range is the character itself. =back B This is the internal function implementing the L|perlop/"Quote and Quote-like Operators"> escape in double-quoted strings. my $str = "Perl is \LGREAT\E"; # "Perl is great" =back