変数$a
を定義します。匿名コンテナ
my $a = 123;
が$a
に関連付けられているsigilless変数定義:
my \b = $a;
を我々はb
経由$a
の値を変更することができます。
b = 234;
say $a;
ことをを表示する必要があります10。
b
が$a
に関連付けられたコンテナに設定されているため、私の理解はこれになります。
匿名コンテナを定義する方法はありますか?私。このような何か:b
以来
my \b = container(123);
は、コンテナに関連付けられているが、割り当ては最初の例のように動作します:
b = 234;
素晴らしいです、あなたはraiph感謝! – dharmatech
@dharmatech '$'だけでは 'state $'と同じであることに注意してください。特に、これがサブルーチン内にある場合は、 'my $'が必要です。 'my \ a = my $ = 123;' –
@BradGilbert:意味的な影響はありますか? 'my \ a = $ = 123'がサブにある場合、コンパイラは最初にその行に遭遇したときに' a'変数と匿名コンテナの両方を作成します。サブの終わりでは 'a'変数がガベージコレクタにスローされますが、anonコンテナはスローされません。同じ行に再び遭遇した場合(例えば、サブを再び呼び出すなど)、 'a'変数は再生成されますが、' $ 'のアノテーションは再生成されません。割り当てはまだ起こり、 'a'は' 123'を得ます。 'my \ a = my $ = 123'はメモリの使用と速度に影響を与える' a'変数と同時に '$ $ 'が捨てられることを意味します。 – raiph