-3

多次元ハッシュ参照の値を置き換えるのに少し苦労しています。

while (  my ( $module, $default_parameters )   = each %{ $device_description_defaults } ) {
    while ( my ( $def_key, $def_value )   = each %{ $default_parameters } ) {
      if ( $def_key eq 'server' ) {
           $device_description_defaults->{$default_parameters}->{$def_key} = $device_servers->{$def_value}->{ $hostname->{'device_cluster'} };
      }
    }
}

次の出力が得られます。

      'HASH(0xaa5fdc8)' => {
                             'server' => [
                                           '10.1.1.1',
                                           '10.1.1.2',
                                         ]
                           },

「HASH(0xaa5fdc8)」は「some_specific_string」であるはずです

4

2 に答える 2

2

あなたの質問は非常に不明確です。

を使用しているようData::Dumperです。これは優れたツールです。両方のハッシュの構造をダンプすると、より明確になることが期待されます。

あなたが何をしていたとしても、あなたの出力 (何の?) は、ハッシュ参照をハッシュ キーとして使用したことを示しています。ハッシュ キーは常に文字列であるため、ハッシュ キーとして使用するすべてのスカラーは文字列になり、'HASH(0xaa5fdc8)' のような文字列は、perl でハッシュ参照を文字列にキャストしたときに得られるものとまったく同じです。

于 2013-04-27T21:55:29.450 に答える