Calocybe: In Array einfügen

Beitrag lesen

Hallo Cruz!

Und hallo Calocybe, du hast mir mal einen Tipp gegeben wie man einen Eintrag in einen Array einfügt, und zwar mit splice und offset 0. Leider sagt mir das so gar nichts, denn ich kann den slpice nur zum löschen einsetzten.

Mein lieber Cruz, jetzt willst Du mich wohl doch ein bisschen aergern? In dem besagten Thread (<../../sfarchiv/1999_3/t05927.htm>) habe ich auch einen Source-Code gepostet, der nebenbei die Verwendung des splice demonstriert (wenn das auch nicht der eigentliche Zweck war). Aber gut, weil ich heute mal nett bin, erzaehl ich's eben noch mal. Es waere aber trotzdem nicht schlecht, wenn Du einfach mal die Perl-Dokumentation zur Hand nimmst und unter splice nachschaust. Sowas wird eigentlich bei jeder vernuenftigen Perl-Distribution mitgeliefert. Um Dir jetzt einen direkten Link praesentieren zu koennen, schicke ich Dich aber trotzdem mal in die Weiten des Internets: http://www.activestate.com/ActivePerl/docs/lib/Pod/perlfunc.html#item_splice

splice @array, start, end;

Nein, wer sagt denn sowas? So ist die Syntax: splice ARRAY,OFFSET,LENGTH,LIST  wobei Du die letzten zwei Parameter auch weglassen kannst, wenn Du sie nicht brauchst.

Also splice ersetzt aus der Liste ARRAY den Teil, der bei dem Index OFFSET beginnt und LENGTH Elemente lang ist, durch den Inhalt der Liste LIST. Und wenn LIST leer ist bzw. nicht angegeben wird, dann wird der Teil von ARRAY eben durch *nichts* ersetzt, also geloescht. Und wenn LENGTH 0 ist, dann wird eben *kein* Teil des ARRAY durch LIST ersetzt, sprich: LIST wird einfach eingefuegt, naemlich an der Position, die durch OFFSET angegeben ist.

Wenn Du jetzt also ein Array namens @array hast, und willst da die Variablen $var1 und $var2 und $var3 bei der sechsten Position (offset 5) eifuegen, schreibst Du:
splice @array, 5, 0, $var, $var, $var3;

Und jetzt sag mir bitte, dass Du's diesmal endlich verstanden hast... :-/

Calocybe