-1

我有一个包含行列表的文件,例如

在 12345 注入值 1 到 'signal_A'
在 12345 注入值 0 到 'signal_B'
在 12346 注入值 1 到 'signal_A'
在 12348 注入值 1 到 'signal_A'
在 12350 注入值 0 到 'signal_A'
在 12354 注入值 0到“信号_A”

从这个文件中,我想读到文件的末尾,我想建立一个散列的散列,比如

%tab = (
       12345 => {           
       signal => "signal_A",           
       value  => "1",        
     },

      12345 => {
       signal => "signal_B",
       value  => "1",
     },
);

我也想迭代这个哈希表。

将非常感谢您的帮助。

4

1 回答 1

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}...;
   }
}
于 2012-11-23T09:41:55.530 回答