Matti Maekitalo: Array leeren - warum geht's nicht?

Beitrag lesen

use Mosche;

[alle Values in einem Hash undef setzen]

Du hast map falsch benutzt.
Lies "perldoc -f map":
%hash = map { ($_ => undef) } keys %hash;

Ist das gleiche wie:
foreach (keys %hash) {
   $hash{$_} = undef;
}

map liefert einen neuen Array (bzw hier Hash) zurück und operiert nicht auf dem alten. Außerdem willst du nur die Schlüssel durchlaufen.

use Tschoe qw(Matti);

--
  Anyone who quotes me in their sig is an idiot. -- Rusty Russell.