Perl 変数

変数はメモリに格納されているデータです。変数を作成すると、メモリ内のスペースが作成されます。

インタプリタは変数の型に応じてメモリ内のストレージスペースを決定するため、整数、浮動小数点、文字列など、さまざまなデータ型を変数に割り当てることができます。

前の記事では、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であるかを判定します
4Void −
このようなコンテキストは、返される値は重要でなく、通常、値を返す必要はありません
5補間 −
このようなコンテキストは引用符内のみ発生します
Share

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です