hi,
Es hat geklappt, vielen Dank! Jetzt muss ich nur noch verstehen was da passiert. ;-)
Danke fürs Danke ;-)
Wie's geht? Ganz einfach: in einem hash gibt es keine doppelten Keys - und das ist der Trick.
Array mit duplikaten
@ar = qw(emil wolle wolle emil erwin erwin rolf rolf otto otto ulla otto);
array auf einen hash einlesen, nur die keys
for (@ar){ $uni{$_} = 1 };
Jedes Listenelement wird als Key mit Value=1 auf einen hash gelesen und da es nur einen Key mit gleichem Wert geben darf in einem hash fliegen die Duplikate raus (tatsächlich werden die Values überschrieben).
oder einfacher:
%uni = map{$_,1}@ar; # Tipp von Wingi
Und irgendie geht das noch einfacher, perldoc...
hash (nur die keys) ausgeben
print join "\n", sort keys %uni;
Zur Übung:
Erstelle dein Array mal neu ohne Duplikate (array leer machen oder neu definieren, Schleife bauen oder mit map - trau dich).
Viele Grüße, Rolf