... ich bin mir aus dem Kopf auch nicht sicher, ob man überhaupt so ohne weiteres mehr als 16 MB zusammenhängenden Speicher auf dem Heap allokieren kann. Bei Deiner Variante mit dem %str wäre da ein varying Feld die bessere Wahl (da kann man dann auf die Länge zugreifen.

D*B