我想在 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";
}