Girom: Datei nach X Zeilen löschen

Beitrag lesen

Hi Kai,

gern geschehen - bestimmt ist es möglich, ich kann dir nur leider nicht sagen wie - ich selbst benutze lieber 2 Schritte.

Bei dir müsste das dann so aussehen:

open(BACKUP, ">>$archiv");
        print BACKUP " neue daten \n";
        close(BACKUP);
        #.:.:.:.:.:.:.
        open(BACKUP, $archiv);
        @ALLBACKUP = <BACKUP>;
        close(BACKUP);
        #.:.:.:.:.:.:.
        $maxmycount = 1;
        foreach $einbackup(@ALLBACKUP)
        {
           $maxmycount = $maxmycount + 1; # zählen aller zeilen
        }
        $maxmycount = $maxmycount - 30;   # maximale Zeilen
        #.:.:.:.:.:.:.
        $mycount = 1;
        open (DAT , ">$archiv") ;
        foreach $einbackup(@ALLBACKUP)
        {
            if($mycount > $maxmycount){
               $mycount = $mycount + 1;
               print DAT "$einbackup";
            }
        }
        close (DAT) ;

Wobei mit >> die neuen Daten unten angehängt werden, wodurch sogar noch eine Abfrage nötig wäre (an alle Perl-Profis, ich weiß es ist nicht der schönste, und kürzeste Code - aber er arbeitet!) da sonst immer die neuen Daten gelöscht werden.

Hoffe das geht noch immer :)

Gruß
Girom