変数はメモリに格納されているデータです。変数を作成すると、メモリ内のスペースが作成されます。
インタプリタは変数の型に応じてメモリ内のストレージスペースを決定するため、整数、浮動小数点、文字列など、さまざまなデータ型を変数に割り当てることができます。
前の記事では、Perlの3つの基本的なデータ型であるスカラ、配列、ハッシュを紹介しました。
- スカラは$で始まります。例えば、$a $bは2つのスカラです。
- 配列は@で始まります。例えば、@a @b は2つの配列です。
- ハッシュは%で始まります。例えば、%a %bは2つのハッシュです。
Perlは変数の型ごとに個別のコマンドスペースを設定するため、異なる型の変数が同じ名前を使用でき、競合について心配する必要はありません。例えば、$fooと@fooは2つの異なる変数です。
目次
変数を作成する
変数は型を明示的に宣言する必要はありません。変数が割り当てられた後、インタープリタは自動的に一致する型のスペースを割り当てます。
変数はイコール(=)を使用して値を割り当てます。
プログラムでuse strictステートメントを使用して、すべての変数に型を強制的に宣言させることができます。
イコールの左側が変数であり、右側が値です。次には例を挙げます。
$age = 25; # 整数
$name = "ceodata"; # 文字列
$salary = 1445.50; # 浮動小数点数
上記のコードにある25、 “ceodata”、および1445.50がそれぞれ変数$age、$ name、および$ salaryに割り当てられています。
次には、配列とハッシュの使い方を説明します。
スカラ変数
スカラは単一のデータ単位です。 データには、整数、浮動小数点数、文字、文字列、段落などを使用できます。 簡単に言えば、何でも構いません。 下記は、スカラのシンプルな使用の例です。
実例
#!/usr/bin/perl
$age = 25; # 整数
$name = "ceodata"; # 文字列
$salary = 1445.50; # 浮動小数点
print "Age = $age\n";
print "Name = $name\n";
print "Salary = $salary\n";
上記のプログラムを実行した出力結果は次のとおりです。
Age = 25
Name = ceodata
Salary = 1445.5
配列変数
配列は、順序付けられたスカラ値を格納するために使用される変数です。
配列は@で始まります。
配列の変数にアクセスするには、ドル記号($)+変数名を使用し、添え字を指定してアクセスできます。次には例を挙げます。
実例
#!/usr/bin/perl
@ages = (25, 30, 40);
@names = ("google", "ceodata", "taobao");
print "\$ages[0] = $ages[0]\n";
print "\$ages[1] = $ages[1]\n";
print "\$ages[2] = $ages[2]\n";
print "\$names[0] = $names[0]\n";
print "\$names[1] = $names[1]\n";
print "\$names[2] = $names[2]\n";
上記のプログラムを実行した出力結果は次のとおりです。
$ages[0] = 25
$ages[1] = 30
$ages[2] = 40
$names[0] = google
$names[1] = ceodata
$names[2] = taobao
プログラムでは、$マークの前にエスケープ文字()を使用して、文字$を出力できます。
ハッシュ変数
ハッシュは、key/valueのペアの集合です。
ハッシュは%で始まります。
ハッシュ値にアクセスする場合、$ + {key}の形式を使用してアクセスできます。
実例
#!/usr/bin/perl
%data = ('google', 45, 'ceodata', 30, 'yahoo', 40);
print "\$data{'google'} = $data{'google'}\n";
print "\$data{'ceodata'} = $data{'ceodata'}\n";
print "\$data{'yahoo'} = $data{'yahoo'}\n";
上記のプログラムを実行した出力結果は次のとおりです。
$data{'google'} = 45
$data{'ceodata'} = 30
$data{'taobao'} = 40
コンテキスト変数
いわゆるコンテキスト:は式の場所を指します。
コンテキストは、イコールの左側にある変数の型によって決定されます。イコールの左側はスカラコンテキストを意味し、イコールの左側はリストコンテキストを意味します。
Perl 解释器会根据上下文来决定变量的类型。实例如下:
Perlインタープリターは、コンテキストに基づいて変数の型を判定します。 次には例を挙げます。
実例
#!/usr/bin/perl
@names = ('google', 'ceodata', 'yahoo');
@copy = @names; # 配列をコピーする
$size = @names; # 配列をスカラに割り当て、配列要素の個数を返す
print "名前 : @copy\n";
print "名前の個数 : $size\n";
上記のプログラムを実行した出力結果は次のとおりです。
名前 : google ceodata yahoo
名前の個数 : 3
コードにある@namesは配列であり、2つの異なるコンテキストで使用されます。 最初のコンテキストはそれを別の配列にコピーさせたので、配列のすべての要素を出力します。もう一つのコンテキストは配列をスカラに割り当て、配列内の要素の個数を返します。
次には多くの異なるコンテキストを挙げます。
番号 | コンテキストと説明 |
1 | スカラ − スカラ変数に値を割り当て、スカラコンテキストの右側で計算します |
2 | リスト − 配列またはハッシュに値を割り当て、リストコンテキストの右側で計算します |
3 | ブール − ブールコンテキストは単純な式であり、結果はtrueであるかfalseであるかを判定します |
4 | Void − このようなコンテキストは、返される値は重要でなく、通常、値を返す必要はありません |
5 | 補間 − このようなコンテキストは引用符内のみ発生します |
コメントを残す