0

ハッシュ[ print Dumper($myhash); ]を出力しています。以下のとおりです。

$VAR1= {
  'context_verdict' => 'Failed',
  'logfile' => 'abc',
  'Block_000' => {
     'Element_0032' => {
         'e_verdict' => 'FAILED',
         'e_name' => 'Element_0032',
         'e_log' => 'This is really bad...',
         'e_ref' => 'Good'
     }
  }

ここで、logfile の値を abc から def に変更したいと考えています。これを達成する方法は?

私が書いた

$myhash{'$VAR1'}->{'logfile'}="def";

しかし、それは動作しません!! それはまだ「abc」です。

4

3 に答える 3

7

これを試してください:

$myhash->{'logfile'}="def";

Data::Dumper は変数に $VAR1 という名前を付けますが、これはハッシュのエントリではありません。

于 2013-04-05T09:28:16.810 に答える
4

まず、常に使用しますuse strict; use warnings;

あなたがしたい

$VAR1->{'logfile'} = "def";

を使用してダンプを取得した場合はDumper(\%myhash)

$myhash{'logfile'} = "def";

を使用してダンプを取得した場合はDumper($myhash)

$myhash->{'logfile'} = "def";

$myhashはハッシュへの参照を保持しているため、ハッシュにアクセスするには逆参照する必要があります。それ->がやっていることです。

于 2013-04-05T09:36:05.977 に答える