klaus: wenn beim sperren einer Datei das Programm abstürzt

Beitrag lesen

Hallo Andreas,

In Perl gibt's die Möglichkeit, festzulegen, was unbeding am Anfang und am Ende des Scripts aufgerufen werden soll.
Dies erfolgt mit den BEGIN- bzw. END-Blöcken. BEGIN wird
Genaueres steht in der Doku (perlmod).
Natürlich hilft das alles nichts, wenn beispielsweise die Maschine ausgeschaltet wird ;-)

Nun zu Deinem konkreten Problem: (Vorschlag)

#!/usr/bin/perl -w
use strict;
use Fcntl ':flock'; # import LOCK_* constants
my($islocked);
[...]
flock(FILEHANDLE,LOCK_EX);
$islocked = 1; # merken wir uns, daß wir den File gelockt haben.
[...]

END
{
flock(FILEHANDLE,LOCK_UN) if islocked == 1;
}

Da fehlt sicherlich noch einiges, aber ich glaube das Prinzip wird klar.

Grüße
Klaus