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