Perlの変数には3種類ある、というのは前のページで説明しました。
ここでは、そのうちのひとつ「スカラー変数」についてのお話です。
スカラー変数は $a $x $abc $osara $date など、頭に $ をつけてあらわして、数字や文字などの情報を入れておく入れ物です。
スカラー変数に情報を入れるには、スカラー変数に続いて = を書き、そのあとに入れたい数字や数式や文字などを書きます。
$a = 1;
$y = $x * 10;
$abc = 'ABCDEFG';
$osara = '肉じゃが';
$date = "$year年$month月$day日";
上の例では、
$a に 1 を入れる
$y に $x を 10倍したものを入れる
$abc に ABCDEFG という文字を入れる
$osara に 肉じゃが という文字を入れる
$date に $year $month $day の中に入っているものを 年月日の文字とともに入れる
という意味になります。
文字を入れる場合には、' または " で囲む必要があります。
' で囲んだ場合にはそのまま、" で囲んだ場合は変数の中身が入ります。
たとえば
$nedan = 980;
$price1 = '$nedan';
$price2 = "$nedan";
とした場合、$price1 と $price2 には別のものが入ります。
$price1 は ' で囲んでありますので、そのまま $nedan という文字が入ります。
$price2 は " で囲んでありますので、980 という文字が入ります。
スカラー変数では、数字と文字を区別しません。
$x = '001234';
$y = $x * 10;
print $y;
上の例では、最初に $x に 001234 という文字を入れています。
しかし、次の行でその文字を10倍にしています。
$y には 12340 が入ります。
$x に入っている 001234 を 1234 という数字とみなして計算しているわけです。
ただし、 $x 自体は変化せずに 001234 のままです。
では、次の場合はどうなるでしょうか。
$x = 'abc';
$y = $x * 10;
print $y;
$x には abc という文字が入ります。
しかし、次の行でその文字を10倍にしています。
abc を無理やり数字とみなした場合 0 となります。
したがって、$y は 0 です。
スカラー変数には、文字や数字のほかに、他の変数やサブルーチンも入れることができます。
しかし、ここは初心者のためのページなので、そのことについては別の機会で。
※コメント投稿者のブログIDはブログ作成者のみに通知されます