我有一个包含
等行列表的文件在12345处将值1注入'signal_A'
在12345处将值0注入'signal_B'
在12346处将值1注入'signal_A'
在12348处将值1注入'signal_A'
在12350处将值0注入'signal_A'
在12354处将值0注入'signal_A'
从这个文件中,我想读到文件的末尾,我想构建哈希的散列,如
%tab = (
12345 => {
signal => "signal_A",
value => "1",
},
12345 => {
signal => "signal_B",
value => "1",
},
);
我也想迭代这个哈希表。
非常感谢您的帮助。
答案 0 :(得分:4)
您有两个具有相同键的元素。那个数据结构不可能存在。相反如下:
%tab = (
12345 => [
{
signal => "signal_A",
value => "1",
},
{
signal => "signal_B",
value => "1",
},
],
12346 => [
{
signal => "signal_A",
value => "1",
},
],
...
);
您将使用以下内容创建
push @{ $tab{$id} }, { signal => $signal, value => $value };
您可以使用
迭代结构for my $id (keys %tab) {
for $event (@{ $tab{$id} }) {
...$event->{signal}...;
...$event->{value}...;
}
}