3

私はハッシュを持っていますmy %read_data = ();

このようなキーと値を構築しようとしています

$read_data{"status"} = 0;
$read_data{"suffix"} = "_SP";
$read_data{"consumption"} = 95;

私が見ているのは次のとおりで、何が間違っているのかわかりません。

Key=status
Key=0
Key=suffix
Key=_SP
Key=consumption
Key=95

私はこれを使用して印刷しています

for my $k1 (%read_data)
{
  print "Key=".$k1."\n";
}
4

3 に答える 3

6

確認するにはコードを投稿する必要がありますが、出力から判断すると、ハッシュを配列であるかのように反復しているように見えます。Perl ではこれを行うことができますが、希望どおりになることはほとんどありません。代わりに、次のようにしてみてください。

foreach my $key (keys %read_data) {
  my $value = $read_data{$key};
  print "$key = $value\n";
};
于 2013-08-22T15:15:16.847 に答える
3

ハッシュを使用するforeachと、キーと値が順番に取得されるため、そうしないでください。

これは私のために働いた:

while (my ($k, $v) = each %read_data) {
    print "$k = $v\n";
}

(私は、再度検索する必要があるハッシュキーよりも、ハッシュエントリを取得することを非常に好みます。)

于 2013-08-22T15:17:08.027 に答える