Listeneinträge löschen
Cruz
- perl
0 Frank Schönmann0 K@rl
Hallo!
Ich weiß, daß man mit pop() und shift() das letzte und das erste Element einer Liste löschen kann. Aber wie kann man denn ein Element mitten in der Liste löschen, so daß die anderen Elemente nachrücken?
Wenn man $Liste[x]=""; verwendet, wird der Listeneintrag lediglich leer, aber er wird nicht gelöscht. Das gibt unangenehme Leerzeilen bei der Ausgabe.
Gruß
Cruz
hi!
Ich weiß, daß man mit pop() und shift() das letzte und das erste Element einer Liste löschen
kann. Aber wie kann man denn ein Element mitten in der Liste löschen, so daß die anderen
Elemente nachrücken?
splice @array, offset [, länge [, liste] ]
Entfernt die durch offset und länge gekennzeichneten Elemente aus @array udn ersetzt sie durch liste (falls angegeben).
bye, Frank!
splice @array, offset [, länge [, liste] ]
Entfernt die durch offset und länge gekennzeichneten Elemente aus @array udn ersetzt sie durch liste (falls angegeben).
bye, Frank!
Hi Dank dir aber kannst du vielleicht ein Beispiel dazu angeben? Ich weiß nicht was offsetund länge meinen.
Cruz
hi!
splice @array, offset [, länge [, liste] ]
Hi Dank dir aber kannst du vielleicht ein Beispiel dazu angeben? Ich weiß nicht was
offsetund länge meinen.
offset ist die Startposition, länge die Anzahl der zu löschenden Elemente.
Beispiel:
splice @array, 1; löscht aus @array das zweite Element, also $array[1].
splice @array, 2, 3; löscht aus @array das dritte bis fünfte Element.
bye, Frank!
Hallo ihr zwei!
splice @array, offset [, länge [, liste] ]
Hi Dank dir aber kannst du vielleicht ein Beispiel dazu angeben? Ich weiß nicht was
offsetund länge meinen.offset ist die Startposition, länge die Anzahl der zu löschenden Elemente.
Beispiel:
splice @array, 1; löscht aus @array das zweite Element, also $array[1].
Gibt man keine Länge mit an, so wird der Bereich bis zum Ende des Arrays gelöscht bzw. durch 'liste' ersetzt. Richtig wäre hier also:
splice @array, 1, 1;
Man kann als Offset auch negative Werte angeben, wodurch man sowas wie 'dritter von hinten' angeben kann ...
Jörk
hi!
Gibt man keine Länge mit an, so wird der Bereich bis zum
Ende des Arrays gelöscht bzw. durch 'liste' ersetzt.
Ups, tatsächlich. Ich sollte meiner Kurzreferenz wohl nicht zu sehr trauen. Das wird dort mit keinem Wort erwähnt :-(
bye, Frank!
Falls Du viel löschst + anlegst, dann nehme ggf. anstatt einer Liste einen Hash - da kann man löschen.