length関数:文字列の長さを取得する

Perl で用意されている組み込み関数の一つである length 関数の使い方です。 length 関数は対象となる文字列の長さを返します。

(Last modified: )

length関数の書式と基本的な使い方

length 関数は次のように定義されています。

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

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

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

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

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

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

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

サンプルコード

それでは簡単なサンプルを作成します。

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";

テキストエディタでプログラムを記述したあと sample.pl という名前で保存します。(文字コードは UTF-8 です)。コマンドプロンプトを起動し、プログラムを保存したディレクトリへ移動したあとで次のように実行します。

perl sample.pl

次のように実行結果が表示されます。

length関数:文字列の長さを取得する(1)

文字列の長さを取得しました。また bytes::length を使ってバイト数もあわせて取得しました。

-- --

Perl で用意されている組み込み関数の一つである length 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。