Thread Datei einlesen und ausgeben
(10 answers)
Opened by ITobiI at 2015-10-10 11:55
Dieses Vorgehen ist, ob Text-Datei oder nicht, sowieso schlecht.
Es liest sich so: lies die Datei, teile sie in Zeilen auf und dann füge die Zeilen wieder zusammen. Da kann man sich das Aufteilen in Zeilen und anschließende Zusammenfügen auch gleich sparen. Wenn die ganze Datei auf einmal in ein Skalar gelesen werden soll, dann nimm zum Beispiel read_file aus File::Slurp oder verwende Code wie diesen hier: Code (perl): (dl
)
1 2 3 4 5 my $daten = do { open(my $FH, "<", "dateiname") or die $!; local $/; <> }; Merke: - Dateihandeles mit $ beginnen! - close passiert automatisch, wenn das Dateihandle aus dem Scope geht - mit Code (perl): (dl
)
local $/ Obiger Code gilt für Textdateien. Wenn du Binärdateien hast, dann musst du das Perl mitteilen. Siehe perlfunc binmode. Das IO-Layer kannst du auch gleich beim Öffnen setzen, siehe perlfunc open. Also dann Code (perl): (dl
)
open my $FH, "<:raw", $dateiname Code (perl): (dl
)
read_file($dateiname, binmode => ':raw'); Eine weitere Bemerkung habe ich noch: warum fangen all deine Pfade mit /root/ an? Warum benutzt du nicht einen normalen User-Account? |