Norbert Klein: -> blutiger Anfänger - Datei auslesen

Beitrag lesen

Hallo.

Da gibt's doch "read", aber da muss man eine bestimmte Anzahl von Zeichen angeben, ich will aber alle Zeichen der Datei. Da komm ich nicht weiter.

Wenn du wissen willst, wie viele Zeichen in der Datei enthalten sind, kannst du den Dateitestoperator[1] -s verwenden.

Die Datei wird, wie du das schon getan hast, geöffnet:

open(DATEI,"<textdatei.txt");

Zum Auslesen benutzt du dann read, was so aussieht:

read(DATEI,my $Inhalt,-s DATEI);

In die Variable $Inhalt wird der Inhalt der Datei mit dem Datei-Handler DATEI geschrieben, als Anzahl der auszulesenden Zeichen wird die Größe der Datei (-s DATEI) angegeben, wodurch alle Zeichen ausgelesen werden.

Dann bin ich noch per Zufall im Forum auf folgenden Syntax gestoßen:
@Variable = <DATEI>;
Geht das?

Ja, das geht auch.

Wenn ja, find ich das irgendwo in Selfhtml beschrieben?

In Selfhtml steht das afaik nicht.

Und warum brauch ich da ein @ und kein $ (warum eine Liste und kein Skalar)?

Mit @Variable = <DATEI>; wird die Datei zeilenweise ausgelesen, und in die Liste geschrieben, im ersten Listeneintrag findet sich die erste Zeile, im Zweiten die Zweite, usw.
Wenn du statt @Variable $Variable verwendest, wird in $Variable die Zeilenanzahl (bzw. Listenlänge) geschrieben.

Gruß
Norbert

[1] http://selfhtml.teamone.de/cgiperl/funktionen/dateiverwaltung.htm#dateitest