Perl 変数
変数はメモリに格納されるデータであり、変数を作成するとメモリ上に領域が確保されます。
インタープリタは変数の型に基づいてメモリ上の記憶領域を決定します。そのため、整数型、浮動小数点型、文字列などのさまざまなデータ型を変数に割り当てることができます。
前の章では、Perlの3つの基本データ型(スカラー、配列、ハッシュ)を紹介しました。
- スカラーは $ で始まります。 $a $b は2つのスカラーです。配列は @ で始まります。 @a @b は2つの配列です。ハッシュは % で始まります。 %a %b は2つのハッシュです。
Perlは各変数型に対して独立した名前空間を設定しているため、異なる型の変数は同じ名前を使用でき、衝突を心配する必要はありません。例えば、$foo と @foo は異なる変数です。
変数の作成
変数は型を明示的に宣言する必要はなく、変数に値を代入すると、インタープリタが自動的に一致する型の領域を割り当てます。
変数への代入には等号(=)を使用します。
プログラム内でuse strict文を使用して、すべての変数に型の明示的な宣言を必須にできます。
等号の左側は変数、右側は値です。例は以下のとおりです:
$age = 25; # 整型 $name = "サンプル"; # 字符串 $salary = 1445.50; # 浮点数
上記のコードでは、25、"サンプル"、1445.50 はそれぞれ$age, $nameと$salary変数に代入されます。
次に、配列とハッシュの使用法を見ていきます。
スカラー変数
スカラーは単一のデータユニットです。データは整数、浮動小数点数、文字、文字列、段落などです。簡単に言えば、それは何でもあり得ます。以下はスカラーの簡単な応用です:
例
上記プログラムの実行出力結果は次のとおりです:
Age = 25 Name = サンプル Salary = 1445.5
配列変数
配列は、順序付けられたスカラー値のリストを格納するための変数です。
配列は @ で始まります。
配列の変数にアクセスするには、ドル記号($)+変数名を使用し、添え字を指定してアクセスします。例は以下のとおりです:
例
上記プログラムの実行出力結果は次のとおりです:
$ages[0] = 25 $ages[1] = 30 $ages[2] = 40 $names[0] = google $names[1] = サンプル $names[2] = taobao
プログラムでは、$ 記号の前にエスケープ文字 (\) を使用しています。これにより、文字 $ を出力できます。
ハッシュ変数
ハッシュはkey/valueペアの集合です。
ハッシュは % で始まります。
ハッシュ値にアクセスする場合は、$ + {key}次の形式でアクセスできます:
例
上記プログラムの実行出力結果は次のとおりです:
$data{'google'} = 45
$data{'サンプル'} = 30
$data{'taobao'} = 40
変数コンテキスト
いわゆるコンテキストとは、式が置かれている位置のことを指します。
コンテキストは等号の左側の変数型によって決まります。等号の左側がスカラーならスカラーコンテキスト、等号の左側がリストならリストコンテキストです。
Perl インタープリタはコンテキストに基づいて変数の型を決定します。例は以下のとおりです:
例
上記プログラムの実行出力結果は次のとおりです:
名字为 : google サンプル taobao 名字数为 : 3
コード内の @names は配列で、2つの異なるコンテキストで使用されています。1つ目は別の配列にコピーするため、配列のすべての要素を出力します。2つ目は配列をスカラーに代入するため、配列の要素数を返します。
以下に、さまざまなコンテキストを示します:
| 番号 | コンテキストと説明 |
|---|---|
| 1 | スカラー −
スカラー変数に代入され、スカラーコンテキストの右側で評価されます。 |
| 2 | リスト −
配列またはハッシュに代入され、リストコンテキストの右側で評価されます。 |
| 3 | ブール −
ブールコンテキストは単純な式の評価であり、true か false かを調べます。 |
| 4 | Void − このコンテキストでは戻り値を気にする必要はなく、通常は戻り値は必要ありません。 |
| 5 | 補間 −
このコンテキストは引用符内でのみ発生します。 |