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