length

文字列の文字数を取得する

構文

解説

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 を使ってください。