在 Perl 中填充哈希值的哈希值
我想知道如何填充以下哈希结构:
my $hash = {
'user' => [
{
'id' => '1',
'name' => 'John'
},
{
'id' => '2',
'name' => 'Pat'
}
]
};
我希望能够动态填充此哈希。我想循环数据库中的值并推送(添加)新值(id、名称)以填充哈希。
I want to know how to populate the following hash structure:
my $hash = {
'user' => [
{
'id' => '1',
'name' => 'John'
},
{
'id' => '2',
'name' => 'Pat'
}
]
};
I want to be able to dynamically populate this hash. I want to loop around values from my database and push (add) new values (id, name) in order to populate the hash.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
为了填充散列的散列中的值,可以只使用:
但是,在循环它们时要小心!标量值
$hash{$key}
实际上是子哈希的标量引用,而不是子哈希对象本身。In order to populate a value in a hash of hashes, one can just use :
Be careful when you loop through them, however! The scalar value
$hash{$key}
will actually be a scalar reference to the sub-hash, not the sub-hash object itself.要向该结构添加另一个元素:
根据您对另一个答案的评论,您可以执行
以下操作作为注释,您的数据结构看起来非常奇怪 - 不清楚为什么您需要仅带有一个硬编码键的外部哈希“
用户
”。To add another element to that structure:
Based on your comment to another answer, you can do
As a note, your data structure looks very weird - it's not clear why you need the outer hash with just one hard-coded key "
user
".Nit:
$hash->{user}
应命名为$hash->{users}
Nit:
$hash->{user}
should be named$hash->{users}