変数に値を格納する

変数を宣言することでプログラム中で変数が利用できるようになります。変数には値を格納したり、格納した値を取り出すことができます。ここでは Perl のプログラムで変数に値を格納する方法について解説します。

(Last modified: )

変数に値を格納する

変数は値を格納する場所です。変数を宣言すると場所だけが作成されています。値を格納するまでは変数という場所には何が入っているか分からない状態となっています。

実際に変数を宣言だけ行って値を格納しない状態で変数の値を出力させてみます。

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

my $var;
print $var;

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

perl sample.pl

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

変数に値を格納する(1)

初期化されていない変数から値を取り出そうとしたために警告が表示されました。

では宣言された変数に対して値を格納してみます。変数に値を格納するには次の書式を使います。

変数 = 値;

= 演算子は右辺の値を左辺へ格納します。今回の場合は右辺の値を左辺の変数に格納するということになります。具体的には次のようになります。

my $str;
$str = "Hello";

変数 $str を宣言したあと、変数 $str に文字列の "Hello" を格納しています。

では変数に格納された値を画面に出力してみます。文字列や数値と同じく print 関数を使って出力します。

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

my $var;
$var = "Hello";

print $var;

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

perl sample.pl

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

変数に値を格納する(2)

変数に格納された値が画面に出力されました。

変数に別の値を格納する

変数は一度値を格納したあとで別の値を格納することができます。ただし 1 つの変数につき値を格納できる場所は 1 つしかありませんので、新しい値を格納すると古い値は上書きされて消えてしまいます。

次のサンプルでは変数を宣言し、一度値を格納してから画面に出力し、その後で別の値を変数に格納してから改めて画面に出力しています。

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

my $str;

$str = "Hello\n";
print $str;

$str = "こんにちは\n";
print $str;

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

perl sample.pl

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

変数に別の値を格納する(1)

変数に格納した値を画面に出力したあと、別の値を変数に格納し、そのあとで再度変数に格納した値を画面に出力しました。

同じ変数に異なる種類の値を格納

Perl で扱う値としては数値や文字列などがあります。他のプログラムの言語では変数に格納できる値の種類を指定して変数を宣言するものもありますが、 Perl では変数に格納できる値を限定していません。その為、宣言した変数に一度文字列を格納した後で、同じ変数に対して今度は数値を格納することが可能です。

次のサンプルでは変数を宣言し、一度文字列の値を格納してから画面に出力し、その後で今度は数値を変数に格納してから改めて画面に出力しています。

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

my $var;

$var = "Hello\n";
print $var;

$var = 100;
print $var."\n";

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

perl sample.pl

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

同じ変数に異なる種類の値を格納(1)

変数を宣言したあと変数に文字列の値を格納し、そのあたで同じ変数に対して数値の値を格納しました。

-- --

Perl のプログラムで変数に値を格納する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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