#!/usr/bin/perl use strict; use warnings; my $file='./test.txt'; open (my $fh, '+<', $file) or die("ERROR OPEN $file ($!)\n"); while(<$fh>) { if(/TESTWORT1/ .. /---/) { print "TESTWORT1 found\n"; # Aktuelle Dateigröße minus der Länge der Zeile my $size = (-s $fh) - length($_); # aktuelle Positon minus der Länge der Zeile my $pos=tell($fh) - length($_); # keine Zeilentrenner local $/=undef; # Alle daten auf einmal einlesen my $data=<$fh>; # zur Gespeicherten position springen seek($fh,$pos,0); # Daten schreiben, damit ist die aktuelle Zeile Gelöscht print $fh $data; # zum Anfang der datei springen seek($fh, 0,0); # Dateigröße anpasen truncate($fh,$size); } } close($fh); print "EXIT\n";