文字コードが utf8 の場合の Perl における文字数のカウント
文字コードが utf8 の場合、 日本語は 3 バイトになるため、 カウントしたい文字列をいったんデコードしてから文字数をカウントする必要があります。 その際、正確に文字数をカウントするために改行は削除しておくこと。 以下のようにして Encode モジュールを使用し、デコードしてから文字数のカウントを行います。 #!/usr/bin/perl -w use Encode qw(decode); my $text = 'こんにちは世界'; my $c_text = $text; $c_text =~ s/\r//sig; $c_text =~ s/\n//sig; my $length = length(decode('utf-8', $c_text)); print 'length => ' . $length; -------------------------------------- 出力結果は以下のようになります。 length => 7