Artikel im Internet unter http://www.hidemail.de/blog/undef-perl.shtml.
Freitag, 11.5.2007, 12:23:47 Uhr

undef in Perl


Der Befehl undef entfernt Werte aus Hashes, Arrays und setzt Skalare auf undef.
Dabei bleibt bei Hashes und Arrays das Element selbst erhalten, es wird jedoch in den Zustand undef versetzt.

Syntax
Skalar:
undef $skalar;

Array
undef $array[Element-Nummer];

Hash
undef $hash{Key};

Darüber hinaus kann undef auch als Rückgabewert aus Unterprogrammen verwendet werden.


@array=(0,1,2,3,4,5,6,7,8,9);

undef $array[5];

foreach (@array)
{
print if defined;
}


Ausgabe:
012346789

Dem Array @array wird das Element 5 auf undef gesetzt. Danach werden per foreach-Schleife alle definierten Elemente ausgegeben.

Übrigens
undef "löscht" Elemente nur scheinbar in Arrays und Hashes, tatsächlich bleiben die ge-undef-ten Elemente aber erhalten, aber halt eben als undefiniert.
Eine "echte" Löschung bei Arrays erfolgt nur per shift, splice und pop, bei Hashes können einzelne Elemente mit delete gelöscht werden.

Mehr zu undef, defined gibts hier

Artikel im Internet unter http://www.hidemail.de/blog/undef-perl.shtml.