linux-l: Perl und Files

Ulrich Wiederhold mogli at bluesky.netcologne.de
Fr Jun 2 19:41:14 CEST 2000


Hallo,
ich verzweifele mal wieder, und bevor ich mir die Kugel gebe und dick
und fett werde, frage ich doch mal lieber hier nach. Ich bin mir sicher,
daß hier jemand eine Antwort weiß und vielleicht ist dieser jemand so
nett, sie mir zukommen zu lassen...

Problem: Ich möchte eine Datei einlesen, die erste Zeile in einer
Variable auslesen und in der Datei löschen, die Datei wieder speichern.

Meine (XXXXXXX-VXXXX.) Versuch sieht wie folgt aus:

	open (FILE, "+<$file");
	@allines = <FILE>;
	$firstline = shift(@allqueues);
	print FILE "@allines";
	close(FILE);

*******************************************

Die $firstline wird auch richtig bestimmt, die Datei müßte mit "+<" zum
Schreiben und Lesen geöffnet sein und "shift(ARRAY)" "entnimmt dem
Vektor den ersten Wert, gibt diesen zurück, kürzt den Vektor um ein
Element und verschiebt alles nach unten". (aus Programmieren in Perl)

Anstatt die Datei zu überschreiben, wird der Rest der Datei (ohne Zeile
1) hinten drangehängt.

Wenn ich anstatt "+<" "+>" verwende, wird durch shift nichts ausgelesen
und der Dateiinhalt gelöscht.

Das Prefix zum Dateinamen ist also das Problem.
Was muß ich verwenden?

Gruß
Uli

P.S.: Es ist mein erstes Programm überhaupt (nach Hallo Welt und so) und
ich sitze jetzt 3 Std. an dem Problem. Grrr! Macht zwar Spaß, aber
irgendwann nervt es.


	



Mehr Informationen über die Mailingliste linux-l