$stored_var = retrieve("$batch_text");
%some_hash= %$stored_var;
これは、保存されているハッシュを取得するためのものだと思います。%$ は何を意味しますか? それは単なる構文ですか、それとももっと複雑な意味がありますか?
store \%batch_hash, "$batch_text";
上記はハッシュの保存に使用されると思います。ここでも、\% について上記と同じ疑問を持っています。
$stored_var = retrieve("$batch_text");
%some_hash= %$stored_var;
これは、保存されているハッシュを取得するためのものだと思います。%$ は何を意味しますか? それは単なる構文ですか、それとももっと複雑な意味がありますか?
store \%batch_hash, "$batch_text";
上記はハッシュの保存に使用されると思います。ここでも、\% について上記と同じ疑問を持っています。
とはどういう%$
意味ですか?
$stored_var
はハッシュ参照であり%$
、逆参照するために使用されます。
store \%batch_hash, "$batch_text";
%batch_hash
はハッシュであり\%
、参照を渡すために使用されるため、store サブルーチンでは、batch_hash ハッシュの参照を最初のパラメーターとして、$batch_text
変数を 2 番目のパラメーターとして渡します。
%$
参照されたハッシュを逆参照するための単なる構文です。ここを見てください。\%
はハッシュを参照するためのものです。ハッシュリファレンス (1. Param store
) で呼び出す必要がある関数も同様です。
その%some_hash= %$stored_var;
部分は、ハッシュリファレンスを新しいハッシュにコピーすることです。それを逆参照する必要があり、その後コピーできます。
%$foo
$foo
ハッシュへの参照を逆参照しているため、行
%bar = %$foo;
スカラー変数によって参照されるハッシュの内容を、ハッシュ変数によってより直接的にアクセスされる別のハッシュに (浅い) コピーすることです。
いくつかの点で、はい、これは「単なる構文」です。つまり、逆参照の方法です。1 つの重要な詳細は、ハッシュまたは配列をシリアル化するために直接機能しないため、(スカラー値で) それらへの参照を使用する必要があることですstore
。retrieve
$foo
ハッシュへの参照でない場合、行は失敗します。