perl初心者BLOG

2009-06-05

[][]length関数で文字列の長さを求める 00:38

・サンプルコード

~$ cat hoge.pl
#!/usr/local/bin/perl
$string = "abc";
print "文字列長:", length($string), "文字\n";

・実行結果

~$ ./hoge.pl
文字列長:3文字

日本語を使うとこうなる

・サンプルコード

~$ cat hoge.pl
#!/usr/local/bin/perl
$string = "あいう";
print "文字列長:", length($string), "文字\n";

・実行結果

~$ ./hoge.pl
文字列長:6文字

6/10追記:dankogai氏からのご指摘によれば、以下の方法はよくないそうです。

(ちなみに、この方法は独習Perl第二版という本に記載されていたものです。。)

日本語の文字数を正確に求めたい場合、use encodingを指定する

・サンプルコード

~$ cat hoge.pl
#!/usr/local/bin/perl
use encoding "euc-jp";
$string = "あいう";
print "文字列長:", length($string), "文字\n";

Windows環境だとたぶん、Shift_JISを指定すると思う。

・実行結果

~$ ./hoge.pl
文字列長:3文字