你好 coolblue,
open(DATEI,"<$datei") or die "Can't open $datei!\n";
my $i;
for($i=0 ; <DATEI> ; $i++) {} #Zeilen zählenclose DATEI;
$i-=160; #die besagten 160 Zeilen abziehen
my $n=0;
my @data;open(DATEI,"<$datei") or die "Can't open $datei!\n";
for(my $s=0 ; <DATEI> ; $s++) {
if($s >= $i) { #Zeilen ab $i-160 einlesen
$data[$n]="$_";
$n++;
}
}close DATEI;
Buarghs. Das ist wirklich grausam, was du da tust, du liest die Datei
voellig unnoetigerweise zweimal aus.
Gibt es eine bessere Möglichkeit, die vorallem effizienter ist?
Im Grunde nicht. Du musst in jedem Fall alles von der Datei auslesen.
Ich habe zuerst an tail -160 gedacht, [...]
tail macht auch nichts anderes als alles auszulesen und nur den relevanten
Teil auszugeben ;-)
Wäre
for(my $s=0 ; <DATEI> ; $s++) {
next if $s < $i;
$data[$n]="$_";
$n++;
}das Gleiche, nur eine andere Schreibweise, oder auf jeden Fall schon
mal besser als das obere Beispiel?
Wenn du auch die Zaehlschleife zum Zaehlen der Zeilen einer Datei
weglaesst, dann ist das auf jeden Fall sinnvoller.
再见,
CK
Ich bewundere wirklich den Sinn der Bienen für kollektive Verantwortung. Obwohl sich einzelne Bienen hin und wieder bekämpfen, herrscht zwischen Ihnen grundsätzlich ein starkes Gefühl für Eintracht und Zusammenarbeit. Wir Menschen gelten als sehr viel weiter entwickelt, doch mitunter rangieren wir sogar hinter kleinen Insekten.
http://wwwtech.de/