Hallo Forum !
Ich möchte mit PERL einer Liste ein Element hinzufügen, aber nur dann, wenn nicht bereits ein gleichartiges Element enthalten ist. Dafür brauche ich etwas ähnliches wie die inarray()-Funktion von php. Wie löse ich das am kürzesten ?
Bisher sieht das bei mir so aus:
@types ist die Zielliste. Das neue Element ist $type.
Ich generiere also zunächst eine Liste @tempList, die alle Elemente aus @types enthält, die gleichartig mit $type sind:
my @tempList = grep($_ eq $type, @types);
Dann füge ich $type der Liste @types hinzu, aber nur, wenn die temporäre Liste @tempList leer ist:
push(@types, $type) if($#tempList == -1);
Ich würde das gerne in eine Zeile zusammenfassen. Habe schon mal folgendes ausprobiert:
push(@types, $type) if($#{ grep($_ eq $type, @types) } == -1);
Das funktioniert aber leider nicht (Warum ?).
Danke für die Hilfe,
Trinita