こんにちは私はperlを学んでいます、そして私はここにいくつかの仮定を投稿します。ですから、どこかで間違っている場合は、遠慮なくコメントして訂正してください。
ハッシュの作成は(他のいくつかの方法の中で)次の方法で行われます。
%numbers = qw(one 1 two 2);
アレイの作成は次のように行われます。
@array = qw(one two);
上記の構造は「非匿名」タイプを表しています。非匿名型と匿名型の主な違いは、名前付き型には参照できる名前があることです。匿名型を作成する場合は、配列内
()
の角括弧、またはハッシュ内の中括弧の括弧を変更する必要があります。言い換えれば、ハッシュのハッシュは他のハッシュへの参照のハッシュです。したがって、クラシックハッシュではなく、ネストされたハッシュで使用する必要があります。[]
{}
{}
()
%HoH = ( flintstones => { husband => "fred", pal => "barney", }, jetsons => { husband => "george", wife => "jane", "his boy" => "elroy", # quotes needed on key. }, simpsons => { husband => "homer", wife => "marge", kid => "bart", }, );
同じ状況が多次元配列にも当てはまります。多次元配列は別の配列への参照を含む配列であるため、代わりに[]を使用する必要があります()。
@array_of_arrays = ( [ "one", "two", "three" ], [ 4, 5, 6, 7 ], [ "alpha", "beta" ] );
各家族(フリントストーン、ジェットソン、シンプソン)を含む「匿名でない」ハッシュがある場合、作成にどの構造を使用する必要があり
%HOH
ますか?$HOH{flinstones} = {%flinstones};
また
$HOH{flinstones} = \%flinstones;
私はそれ
\%flinstones
が単にへの参照を割り当てていると仮定しています$HOH{flinstones}
、これはそれが単にそれへの参照を含んでいるので私がすることは何でも%flinstones
影響を与えることを意味し$HOH{flinstones}
ます。一方{%flinstones}
、「非匿名」ハッシュを「匿名」ハッシュに再キャストするようなものです。これには%flinstones
、後で変更または削除することもできる効果があり、$HOH{flinstones}
匿名ハッシュへの参照があるため、影響はありません。ループ内の変数はどうなりますか?ループ内で発行されると、古いものを上書きする
my $variable;
か、新しいものを作成するか、同じ変数であるか、またはここで何が起こりますか?for($i=0;$i<4;$i++){ my $variable=$i; print $variable }