文字列の文字数を取得する
length
は、文字列 EXPR
の文字数を返します。
EXPR
が指定されなければ $_ が適用されます。
use utf8;
print length 'こんにちは'; # 5
length
で日本語などのマルチバイト文字を扱う場合は注意が必要です。
上記コードのように UTF-8 モードが有効な場合は length
は期待通りに文字数を返します。
しかし、UTF-8 モードが有効でない場合は結果的にソースコードのエンコーディングに合わせたバイト数を返します。
no utf8;
print length 'こんにちは'; # 15
もし、UTF-8 モードが有効な環境で文字列のバイト数を得たい場合は、次のようにします。
use utf8;
use Encode;
print length Encode::encode( 'UTF-8', 'こんにちは' ); # 15
他のプログラミング言語では length
で配列の要素数が得られることがありますが、
Perl の length
にはそのような機能はありませんので注意してください。
Perl で配列の要素数を得たいなら、scalar
を使ってください。