傳回 EXPR 的小寫版本。如果省略 EXPR,則使用 $_
。
my $str = lc("Perl is GREAT"); # "perl is great"
傳回的結果取決於多個因素
use bytes
生效結果遵循 ASCII 規則。只有字元 A-Z
會變更,分別變更為 a-z
。
use locale
for LC_CTYPE
生效尊重目前的 LC_CTYPE
區域設定,適用於小於 256 的碼點;並對其餘碼點使用 Unicode 規則(最後一個只會在同時設定 UTF8 旗標時發生)。請參閱 perllocale。
從 v5.20 開始,如果區域設定為 UTF-8,Perl 會使用完整的 Unicode 規則。否則,此方案會有一個缺點,即跨越 255/256 界線的字元大小寫轉換沒有定義清楚。例如,Unicode 規則中 LATIN CAPITAL LETTER SHARP S (U+1E9E) 的小寫在 ASCII 平台上為 U+00DF。但在 use locale
(v5.20 之前或不是 UTF-8 區域設定) 下,U+1E9E 的小寫為它本身,因為 0xDF 在目前的區域設定中可能不是 LATIN SMALL LETTER SHARP S,而 Perl 沒有辦法知道該字元在區域設定中是否存在,更不用說它的代碼點是什麼了。對於所有會跨越 255/256 界線的案例(並不多),Perl 會傳回一個大於 255 的結果(幾乎總是未變更的輸入字元);從 v5.22 開始,它會引發 locale 警告。
會使用 Unicode 規則進行字元大小寫轉換。
use feature 'unicode_strings'
或 use locale ':not_characters'
生效會使用 Unicode 規則進行字元大小寫轉換。
會使用 ASCII 規則進行字元大小寫轉換。ASCII 範圍之外的任何字元的小寫都是字元本身。
注意:這是實作雙引號字串中 \L
跳脫字元的內部函式。
my $str = "Perl is \LGREAT\E"; # "Perl is great"