-1

次のような行のリストを含むファイルがあります

12345 で値 1 を「signal_A」
に注入 12345 で値 0 を「signal_B」
に注入 12346 で値 1 を「signal_A」
に注入 12348 で値 1 を「signal_A」
に注入 12350 で値 0 を「signal_A」
に注入「signal_A」へ

このファイルから、ファイルの最後まで読みたいし、次のようなハッシュのハッシュを作成したい

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

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

また、このハッシュテーブルを繰り返したいです。

大変お世話になりました。

4

1 に答える 1

4

同じキーを持つ2つの要素があります。そのデータ構造は存在できません。代わりに次はどうですか。

%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 に答える