Hell-O!
open(OUTPUT, $output);
seek (OUTPUT, $c, 0);
print OUTPUT @write;
close(OUTPUT);
Sieht erstmal gut aus.
$output ist als append eingestellt.
Du meinst so, wie es in perlopentut beschrieben ist? Welchen Modus hast du angegeben?
Der schreibt aber alles untereinander, unabhängig davon, wo der Zähler ($c - der funktioniert) steht.
Was wird untereinander geschrieben? Bedenke, dass seek() nur der Positionierung des Dateizeigers dient, Platz für einen neuen Eintrag schafft er nicht. Und schließlich: Wie ermittelst du $c?
Hat jemand ne Ahnung, woran das liegen könnte? Hab auch schon probiert, statt $c nen festen Wert einzusetzen, aber der reagiert überhaupt nicht darauf. In einem anderen Skript mit den selben Systemvoraussetzungen funktioniert's aber.
Du solltest ein bisschen mehr von deinem Script offenbaren, so kannman dir nicht helfen, nur raten.
Und wie schreib ich am besten die Werte raus, damit OpenOffice Calc die als Tabelle interpretieren kann? Momentan trenn ich sie mit tab und schreib's als cvs raus.
Mal ein ganz simples Beispiel:
#!/usr/bin/perl -w
use strict;
use warnings;
use CGI::Carp qw(fatalsToBrowser);
use Fcntl qw(:flock);
my $file = "../daten.txt";
while(<DATA>) {
chomp($_);
my @words = split(/ /, $_);
open(FH, "+>>$file") || die $!;
flock(FH, LOCK_EX);
print FH join(';', @words) . "\n";
close(FH);
}
print "Content-type: Text/plain\n\n";
open(FH, $file) || die $!;
while(<FH>) {
print $_;
}
close(FH);
__DATA__
Ein kleiner Text anstatt einer Datei zum testen
Ich bin gespannt ob das auch funktioniert
Das funktioniert ordnungsgemäß.
Siechfred