繰り返しを含む以下のPerlコードを読んでいます。データ構造の説明
for my $j (0 .. $#{$dat[$Row]})
{
$vectors{ $dat[$Row][$j] } = $j;
}
$vectors{ $dat[$Row][$j] }
は何を略ですか? $vectors->$dat[$Row][$j]
に相当しますか?
繰り返しを含む以下のPerlコードを読んでいます。データ構造の説明
for my $j (0 .. $#{$dat[$Row]})
{
$vectors{ $dat[$Row][$j] } = $j;
}
$vectors{ $dat[$Row][$j] }
は何を略ですか? $vectors->$dat[$Row][$j]
に相当しますか?
what does $vectors{ $dat[$Row][$j] } stand for?
$dat[$Row]
はアレイへの参照です。 $dat[$Row][$j]
は明らかにその配列内の要素です。どんな値が入っていても、%vectors
というハッシュキーになります。値は$j
です。
Is that equivalent $vectors->$dat[$Row][$j]
いいえ、それは%vectors
、変数$vectors
にない参照されるだろう。これを書くために
より読みやすい方法があるかもしれない:
my $aref = $dat[$Row];
for my $index (keys @$aref) {
my $key = $aref->[$index];
$vectors{$key} = $index;
}
も参照逆参照に、->
の使用を例示しています。
$vectors
は、多次元配列(参照配列)と$Row
と$j
2つのスカラーのハッシュです。したがっての%vectors
ハッシュのキーを$j
に設定しています。
%vectors
はハッシュです。
$vectors{$k}
そこでループは、キーコンテンツとなるハッシュを作成している
キー$k
$dat[$Row][$j]
のハッシュの値が2次元配列(カラム$j
、行$Row
)の要素でありますvalueは列インデックスです。反復それをどうするか持っています - あなたはそれを綴る場合
$vectors{ $dat[$Row][$j] }
は
# $Row is a row index.
# $j is a column index.
# (How inconsistent!)
my $row = $dat[$Row]; # A ref to an array.
my $key = $row->[$j]; # A value from the table.
$vectors{$key}
あなたのタイトルは大幅に改善することができ、
の略ですか? – reinierpost