Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision d87c3bf7

Von Moritz Bunkus vor etwa 17 Jahren hinzugefügt

  • ID d87c3bf791e5222ee0d1ef2d23689ac9dffe63a5
  • Vorgänger 0eb1af1c
  • Nachfolger 900dff5f

Das Modul "Data::Dumper" hat die Eigenheit, dass es den Iterator von gedumpten Hashes nicht zurücksetzt bzw. ihn nicht bis zum Ende ausliest, wenn "Sortkeys" wahr ist. Das hat zur Folge, dass der folgende Aufrufe von "each" für dieses Hash sofort beendet wird. Also muss der Iterator manuell zurückgesetzt werden. Siehe auch die Diskussion in "perldoc -f each".

Unterschiede anzeigen:

SL/LXDebug.pm
131 131
    my $dumper = Data::Dumper->new([$variable]);
132 132
    $dumper->Sortkeys(1);
133 133
    $self->message($level, "dumping ${name}:\n" . $dumper->Dump());
134

  
135
    # Data::Dumper does not reset the iterator belonging to this hash
136
    # if 'Sortkeys' is true. Therefore clear the iterator manually.
137
    # See "perldoc -f each".
138
    if ($variable && ('HASH' eq ref $variable)) {
139
      keys %{ $variable };
140
    }
141

  
134 142
  } else {
135 143
    $self->message($level,
136 144
                   "dumping ${name}: Data::Dumper not available; "

Auch abrufbar als: Unified diff