utf8フラグ付き文字列の大きさ


 文字列のサイズの取得にはlength関数を使いますが、utf8フラグがついていると文字数が返ってきます。
 文字数ではなくバイト数が欲しい場合にはbytes::lengthを使います。
use strict;
use Encode;

my $sjis_str = 'あいうえお';
my $utf8_str = decode('shift-jis', $sjis_str);

print "(sjis)\n";
printf "length: %d\n", length $sjis_str;
printf "bytes : %d\n", bytes::length($sjis_str);

print "\n";
print "(utf8)\n";
printf "length: %d\n", length $utf8_str;
printf "bytes : %d\n", bytes::length($utf8_str);

関連項目

length関数
文字列長の取得