初期化されていない変数には、いったい何が入っているのだろうか?
それを確かめるためのプログラム(kakunin.pl)が以下となる。
#! /usr/bin/perl
# kakunin.pl
$kotae1 = $nazo1 + 1;
print "$kotae1\n";
$kotae2 = $nazo2."nani";
print "$kotae2\n";
実行結果
$./kakunin.pl
1
nani
初期化していない変数 nazo1 に 1 を加えた場合、$kotae1 は、1となる。つまり、nazo1 という変数には、0 が入っていたことになる。
では、初期化していない変数 nazo2 の場合はどうだろうか。nazo2 に "nani" という文字を結合すると、$kotae2 は、"nani" となる。すなわち、nazo2 には、""(つまり、空文字列)が入っていたのだ。
実は、初期化されていない変数は、
- 数値としてみた場合は0としてふるまい
- 文字列としてみた場合は""としてふるまう
という便利な値である、
undef で定義されている。
$nazo = undef;
というように自分で書いて使うことも可能である。
補足
- 文字列を結合する演算子は、 「.」(ピリオド)を用いる。
(使用例)
$first_name = "Taro";
$last_name = "Tanaka";
$full_name = $first_name . " " . $last_name; #名前と苗字を1文字分空けて結合
print "My name is $full_name.\n";
トップページ ->
Perl ->
変数 関連