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.