ちょっと書き直そう。UPPERCASE/lowercaseを区別しないようにして、エラーチェックも厳密にしないと。今の状態だとちょっと処理が甘い。
追記 [17:54]
UC/lcを区別しないように変更。あと、&Tangerine::import
にちょっとした修正。ちょっと引っかかったところがあるので後のためにメモ。
日本語とアルファベットが混在した文字列の中のアルファベットを小文字に置換するのに、
$str =~ tr/A-Z/a-z/;
こう書くと日本語が化ける。Encodeモジュールを使って、
$str = decode $charset, $str;
$str =~ tr/A-Z/a-z/;
$str = encode $charset, $str;
いったんPerl内部表現に変換してやればきちんと置換できる。
追記 [11/05 01:09]
試してないけど、これでもいいんじゃないかなぁ。
$str =~ s/([A-Z])/lc $1/ge;