Perl-references
Perl-リファレンス
Perl参照は、別の値の場所を保持するスカラーデータ型で、スカラー、配列、またはハッシュの場合があります。 スカラーの性質のため、参照はどこでも使用でき、スカラーを使用できます。
他のリストへの参照を含むリスト、ハッシュへの参照を含むリストなどを作成できます。 これが、ネストされたデータ構造がPerlで構築される方法です。
参照を作成する
次のようにバックスラッシュを前に付けることで、変数、サブルーチン、または値の参照を作成するのは簡単です-
あなたは、バックスラッシュ演算子を使用してI/Oハンドル(ファイルハンドルまたはdirhandle)に参照を作成することはできませんが、匿名配列への参照は、次のように角括弧を使用して作成することができます-
同様に、次のように中括弧を使用して匿名ハッシュへの参照を作成できます-
匿名サブルーチンへの参照は、次のようにサブ名なしでサブを使用して作成することができます-
参照解除
参照解除は、参照ポイントからその場所への値を返します。 参照を間接参照するには、参照がスカラー、配列、ハッシュのいずれを指しているかに応じて、参照変数のプレフィックスとして$、@、または%を使用します。 以下は、概念を説明するための例です-
上記のプログラムが実行されると、次の結果が生成されます-
変数の型がわからない場合は、 ref を使用してその型を簡単に知ることができます。引数が参照の場合、次の文字列のいずれかが返されます。 そうでなければ、それはfalseを返します-
次の例を試してみましょう-
上記のプログラムが実行されると、次の結果が生成されます-
循環参照
循環参照は、2つの参照に相互参照が含まれている場合に発生します。 参照を作成するときは注意する必要があります。そうしないと、循環参照がメモリリークを引き起こす可能性があります。 以下は例です-
上記のプログラムが実行されると、次の結果が生成されます-
関数への参照
これは、シグナルハンドラーを作成して、関数名の前に\&を付けて関数への参照を生成し、アンパサンド&を使用して参照変数のプレフィックスを付けるだけで参照を逆参照できるようにする必要がある場合に発生することがあります。 以下は例です-
上記のプログラムが実行されると、次の結果が生成されます-