Perl初歩の初歩

プログラミング言語Perlの初心者のためのわかりやすい解説ブログ(を目指しています)

数字や文字などを1つだけ入れる器…スカラー変数

2009-05-04 14:07:14 | ルールを覚えよう

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 です。

スカラー変数には、文字や数字のほかに、他の変数やサブルーチンも入れることができます。
しかし、ここは初心者のためのページなので、そのことについては別の機会で。



コメントを投稿