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関数・文字列長の取得
