length関数

広告

「length」関数は対象となる文字列の長さを返します。

文字列の長さを返します。文字列がUnicodeの場合には文字数を、そうでな
い場合には文字のバイト数となります。

パラメータ:
  EXPR  対象の文字列
戻り値:
  文字列の長さ

1番目の引数には対象となる文字列を指定します。省略された場合は変数「$_」が使用されます。取得できる文字の長さは日本語の場合には文字の数となりバイト数とはなりませんので注意して下さい。

※Unicode文字列の場合にバイト数を取得するには「bytes::length」を使用します。

具体的には次のように記述します。

print length("Hello");
print length("こんにちは");

上記の場合はどちらも「5」を返します。

サンプルプログラム

では簡単なプログラムで確認して見ます。

test1-1.pl

use strict;
use warnings;
use utf8;
binmode STDIN, ':encoding(cp932)';
binmode STDOUT, ':encoding(cp932)';
binmode STDERR, ':encoding(cp932)';

my $num;

$num = length("Hello");
print "Hello = $num¥n";

$num = length("こんにちは");
print "こんにちは = $num¥n";

$num = bytes::length("こんにちは");
print "こんにちは = $num¥n";

上記を「test1-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。

length関数

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)