Revision d87c3bf7
Von Moritz Bunkus vor etwa 17 Jahren hinzugefügt
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
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".