作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 perl 中编写一个小“DBQuery”函数,这样我就可以有一个单行程序,它发送一个 SQL 语句并接收回一个散列数组,即一个记录集。但是,我遇到了 Perl 语法问题(可能还有一些奇怪的指针/引用问题),这使我无法从数据库中获取的散列中打包信息。下面的示例代码演示了该问题。
我可以使用以下语法从数组内的散列中获取数据“Jim”:
print $records[$index]{'firstName'}
%row = $records[$index];
$row{'firstName'};
my @records = (
{'id' => 1, 'firstName' => 'Jim'},
{'id' => 2, 'firstName' => 'Joe'}
);
my @records2 = ();
$numberOfRecords = scalar(@records);
print "number of records: " . $numberOfRecords . "\n";
for(my $index=0; $index < $numberOfRecords; $index++) {
#works
print 'you can print the records like this: ' . $records[$index]{'firstName'} . "\n";
#does NOT work
%row = $records[$index];
print 'but not like this: ' . $row{'firstName'} . "\n";
}
最佳答案
嵌套数据结构包含散列引用,而不是散列。
# Will work (the -> dereferences the reference)
$row = $records[$index];
print "This will work: ", $row->{firstName}, "\n";
# This will also work, by promoting the hash reference into a hash
%row = %{ $records[$index] };
print "This will work: ", $row{firstName}, "\n";
关于arrays - 如何从 Perl 中的数组中获取哈希值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51195/
我是一名优秀的程序员,十分优秀!