[quote=sid burn,09.04.2006, 20:07]Anscheind hat man ein Array, dass die unterschiedlichen Speicherstellen der unterschiedlichen Elemente enthält. Greift man auf Element 500 wird auf eine Speicherstelle verwiesen die auf einer Struktur zeigt, wo sich der Inhalt befindet.
Letztendlich wird beim vergößern des Arrays dann nur die tabelle mit den Speicherorten neu angelegt, und umkopiert. Aber nicht die Inhalte des Arrays.
[/quote]
Exakt. Intern ist ein AV (Array Value) eine Datenstruktur, die hauptsächlich ein Array enthält, das auf SV (Scalar Value, die eigentlichen Werte) verweist. Beim Umkopieren des Arrays im AV müssen deshalb die eigentlichen Werte nicht angefasst werden.
QuoteVielleicht sollte man auch einfach Perl vertrauen das alles gut und schnell geht, und sich keine größere Gedanken darüber machen. Immerhin Programmieren wir mit Perl und nicht mit C, damit wir uns nicht mit solchen Sachen befassen müssen. *g*
So ist es. Wenn es denn wirklich performance-kritisch wird, kann man noch immer auf XS/Inline::C zugreifen oder Arrays anderweitig emulieren.