Perlの変数

変数のとは

変数とは、数値や文字列を格納する事ができる入れ物の事です。 Perlには、スカラー、配列(リスト)、連想配列(ハッシュ)というデータ型があり、 それぞれ、スカラー変数、配列変数、連想配列という3つの変数があります。

Perl変数のきまり

変数は変数名の先頭に下記の記号をつける事によって、変数と認識されます。

$:スカラー変数
@:配列変数
%:連想配列変数

一番基本的な変数である。スカラー変数から説明していきます。

スカラー変数

スカラー変数とは

スカラー変数は、数値、文字列等の値を1つだけ、代入して保持しておく事が出来ます。 スカラー変数の名前は、先頭は$ではじまり、数字、英字、アンダースコア(_)を使用 することができますが、$の次の1文字目は数字を使うことができません。 又、大文字と小文字は区別されますので、$Hooと$hooは別の変数として扱われます。

スカラー変数の例

$hoo OK
$hoo1 OK
$hoo_1 OK
$1hoo NG ※数値で始まってはいけない

スカラー変数と値

スカラー変数の値

スカラー変数は、他の多くのプログラム言語(C、Java等)の変数と異なり 数値でも文字列でも型を気にすることなく、格納する事ができます。

数値の代入

$hoo1 = 100;
$hoo2 = 1.5;

数値は、整数でも浮動少数点数でも変数に格納する事ができます。

文字列の代入

$strhoo1 = 'PERL・CGI勉強中'
$strhoo2 = "PERL・CGI勉強中"

文字列を表すには、 【 ' 】シングルクォーテーションで囲む方法(シングルクォーテーション文字列)と 【 " 】ダブルクォーテーション(ダブルクォーテーション文字列)で囲む方法があります。

【 ' 】シングルクォーテーション文字列と【 " 】ダブルクォーテーション文字列

【 " 】ダブルクォーテーションで囲った文字列内では、【 \ 】エスケープシーケンスを使って 文字に特殊な意味を持たせることが可能です。

エスケープシーケンス

・\n - 改行を表す
・\t - タブ文字を表す

print "PERL・CGI\n勉強中\n";
print "PERL・CGI\t勉強中\n";
-- 実行結果 --
PERL・CGI
勉強中
PERL・CGI勉強中 ※タブ文字が含まれています。

他にもエスケープシーケンスをつけることにより特殊な意味を持つ字もがたくさんあります。→エスケープシーケンス特殊文字一覧

【 ' 】シングルクォーテーションで囲った文字列の場合は、【 \n 】や【 \t 】も特殊な意味はもたず。 そのまま文字列として出力されます。

変数展開

更に【 " 】で囲った文字列内では、変数展開が可能です。 下記プログラムの実行結果を見てもらうと分り易いと思います。

$url = "www.webhtm.net";

print 'URL1:$url'."\n";
print "URL2:$url"."\n";

-- 実行結果 --
URL1:$url
URL2:www.webhtm.net

シングルクォーテーション文字列では、 変数は単なる文字列としての意味しか持たないのに対して、 ダブルクォーテーション文字列内では、 変数は、変数としての意味を持てるという事です。

文字列内で特殊文字列や、変数を使いたい場合は、【 "" 】を 使いたくない場合は【 '' 】を使用しましょう。


スポンサードリンク