在Perl中,子哈希表是如何工作的?
我正在编写一些Perl代码,并试图了解Perl在做什么 我被以下哈希表代码卡住了:在Perl中,子哈希表是如何工作的?,perl,Perl,我正在编写一些Perl代码,并试图了解Perl在做什么 我被以下哈希表代码卡住了: $summary01{$myHash{'ConfigID'}}{'ConfigID'} = $myHash{'ConfigID'}; 变量$myHash包含一条数据库记录 此代码正在设置存储来自sql查询的数据摘要 有人能解释一下}{代码在做什么吗?这是多维哈希表吗 谢谢,代码 $summary01{$myHash{'ConfigID'}}{'ConfigID'} = $myHash{'ConfigID'};
$summary01{$myHash{'ConfigID'}}{'ConfigID'} = $myHash{'ConfigID'};
变量$myHash
包含一条数据库记录
此代码正在设置存储来自sql查询的数据摘要
有人能解释一下}{
代码在做什么吗?这是多维哈希表吗
谢谢,代码
$summary01{$myHash{'ConfigID'}}{'ConfigID'} = $myHash{'ConfigID'};
可以重写为
my $configID = $myHash{ConfigID};
$summary01{$configID}{ConfigID} = $configID;
即,假设$configID=123
,这将向%summary01
添加一个条目,如
%summary01 = (
...,
123 => { ..., ConfigID => 123 },
...,
);
}{
序列没有特殊意义。这只是嵌套哈希$summary{…}{…}
中的一个查找,其中一个哈希键是另一个哈希查找$myHash{ConfigID}
代码
$summary01{$myHash{'ConfigID'}}{'ConfigID'} = $myHash{'ConfigID'};
可以重写为
my $configID = $myHash{ConfigID};
$summary01{$configID}{ConfigID} = $configID;
即,假设$configID=123
,这将向%summary01
添加一个条目,如
%summary01 = (
...,
123 => { ..., ConfigID => 123 },
...,
);
}{
序列没有特殊意义。这只是嵌套哈希$summary{…}{…}
中的一个查找,其中一个哈希键是另一个哈希查找$myHash{ConfigID}
让我们中断$summary01{$myHash{'ConfigID'}{'ConfigID'}=$myHash{'ConfigID'}
深入到更冗长的内容中:
# Observation: %$summary01 is a hash of hashes
my $foo = $myHash{'ConfigID'}; # $foo is a scalar value
my $bar = $summary01{$foo}; # $bar is a pointer, a copy of a reference
$bar{'ConfigID'} = $foo; # .... and this is the actual assignment
让我们把
$summary01{$myHash{'ConfigID'}}{'ConfigID'}=$myHash{'ConfigID'};
分解成更冗长的部分:
# Observation: %$summary01 is a hash of hashes
my $foo = $myHash{'ConfigID'}; # $foo is a scalar value
my $bar = $summary01{$foo}; # $bar is a pointer, a copy of a reference
$bar{'ConfigID'} = $foo; # .... and this is the actual assignment
有趣的是,你是如何在根本不谈论引用的情况下解释这一点的。我确实喜欢箭头
->
使嵌套引用更加明显,特别是对于初学者。有趣的是,你是如何在根本不谈论引用的情况下解释这一点的。我确实喜欢箭头->
使嵌套引用更加明显,尤其是特别适合初学者。