hi,
Ja, sehr OT, ist das: Solch eine Datei würde ich weder mit PHP noch mit Perl bearbeiten, da würde ich höchstens mal nachfragen, wie die Datei auf das System gekommen ist ;)
Ach so Abwegig finde ich das gar nicht, man muss sich ja nur das Forumsarchiv mit 3,4 GB angucken und damit was machen wollen, schon passt es nicht in den Hauptspeicher.
Es kommt immer auf die konkrete Aufgabenstellung an. Dateien jenseits 3 GB habe ich auch mit Perl noch nicht bearbeitet, es würde sehr wahrscheinlich auch länger als 10 min dauern, den Inhalt in den Hauptspeicher zu lesen, wo dann das OS auch auslagern wird.
Gute Erfahrungen habe ich damit gemacht, Dateien (XML, CSV) bis 300 MB komplett in den Hauptspeicher zu lesen auf eine mir passende Datenstruktur, ggf. entwerfe ich dazu den Algorithmus selbst, sofern es kein passendes CPAN Modul gibt, was mir die Arbeit erleichtern kann. Wenn der ALgorithmus passt, ist der Rest dann nur noch Tipparbeit ;)
Beim Durchsuchen von Text-Dateien hingegen gehen meine Scripts zeilenweise durch die Datei, ohne den kompletten Inhalt in den RAM zu lesen. Das Suchergebnis allerdings kommt dann in den Hauptspeicher, wo es für die Ausgabe aufgearbeitet wird, z.B. wird hier ein Array-Slice nach dem Codepoint sortiert für die Ausgabe; das funktioniert auch mit PHP-Array's einwandfrei.
Viele Grüße,
Hotti