Artikel im Internet unter http://www.hidemail.de/blog/datei-einlesen-exotisch.shtml.
Montag, 26.3.2007, 09:50:14 Uhr

Datei komplett einlesen - Die exotische Variante


Beim stöbern im Netz hab ich folgendes entdeckt:

open (FILEHANDLE,"<test.txt");
my $string = do { local $/; <FILEHANDLE> };
print $string;


Der Inhalt der Datei test.txt wird komplett in $string eingelesen. Ohne Schleife oder sonstwas.
Wie geht das?
Also, die Datei wird geöffnet, so weit alles klar.
Dann wird im do-Block die Variable $/ lokal gesetzt, und zwar auf '', oder lesbarer, auf ein leeres Zeichen. Das bedeutet: lies alles von Filehandle FILEHANDLE ein.
Die Idee mit dem local bewirkt, daß das $/ nur im Block geändert wird, außerhalb bleibt es auf dem Startwert bestehen, der ja normalerweise ein \n ist.
Das wird dann dem Skalar $string zugewiesen und ausgegeben.
Wie man sieht gibt es in Perl also immer mehrere Möglichkeiten, ein Problem zu lösen.


Artikel im Internet unter http://www.hidemail.de/blog/datei-einlesen-exotisch.shtml.