変数を宣言する

Perl では変数の役割としては同じですが、いくつかの種類が用意されています。また変数を利用するにはまず変数の宣言を行う必要がありますが、宣言を行うときには変数の有効範囲を考慮する必要があります。ここでは Perl で変数を宣言する方法について解説します。

(Last modified: )

変数の種類

文字列や数値などの値を格納するためのものを単に変数と呼ぶことが多いですが Perl では変数にはいくつか種類があります。単に値を格納するために使われる変数は正式にはスカラー変数と呼ばれるものです。

Perl ではスカラー変数の他に配列変数、ハッシュ変数(連想配列変数)などがあります。

変数の種類利用方法
スカラー文字列や数値などの値を1つ格納する
配列複数の値を順番に保存する
ハッシュ複数の値を、キーと値のペアで保存する

単に変数と呼ぶときはスカラー変数のことを指していると考えて下さい。配列やハッシュの格納する場合は、それぞれに対応した変数を利用します。

変数を宣言する

Perl で変数を使用する場合には変数を宣言する必要があります。変数の宣言には変数の種類毎に用意されたプレフィックスに変数名を付けて記述します。

プレフィックス + 変数名

変数の種類毎のプレフィックスと使用例は次の通りです。

$var  スカラー変数
@var  配列変数
%var  ハッシュ変数

スカラー変数を使用する場合は例えばプログラムの中で次のように記述します。

my $var;

変数を宣言するときに my を付けると、その変数はレキシカル変数と呼ばれるものになり、変数を宣言したスコープ内でのみ有効となります。(スコープというのは { から } までのブロック内のことです)。

配列変数やハッシュ変数を宣言する場合も同じです。

my @var;
my %var;

複数の変数に対して my を使用する場合は次のように記述することもできます。

my ($a, $b, %c);

グローバル変数

変数を宣言するときには my のほかに our を付けることでグローバル変数(パッケージ変数)とすることができます。この場合は同じプログラム内であればどこからでも変数を参照できます。(異なるパッケージ内からはパッケージ名を付けて参照する)。

our $var;

グローバル変数(パッケージ変数)については別のページで詳しく解説する予定です。

サンプルコード

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

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

our $name;
my $address;

$name = "山田 太郎";
$address = "東京都港区";

print "\$name = $name\n";
print "\$address = $address\n";

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

perl sample.pl

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

変数を宣言する(1)

レキシカル変数およびグローバル変数を定義し、それぞれに値を格納したあとで画面に出力しました。

-- --

Perl で変数を宣言する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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