2009-01-25 11 views
5

Ich habe ein Perl-Skript, das ich unter Windows ausführen möchte, entweder oder ActivePerl; Es ist mir egal, was. Dieses Skript verwendet jedoch flock() Aufrufe, die in keiner dieser Versionen von Perl enthalten sein scheint.Wo ist flock() für Perl unter Windows?

Kann mir jemand helfen, das Programm zu starten?

Antwort

6

Ist das Fcntl-Modul installiert? Versuchen Sie folgendes:

Wenn es sich beschwert, haben Sie nicht das Fcntl-Modul installiert. Wenn es nicht beschweren, dann haben Sie Zugriff auf Fcntl :: Herde, so setzen diese in Ihrem Skript:

use Fcntl qw(:DEFAULT :flock); 

und schon kann es losgehen.

1

Versuchen Sie, perldoc -f-Herde zu verwenden, um zu überprüfen, ob die Dinge unterstützt werden & dann schauen Sie in das angegebene Beispiel, um die Verwendungskriterien der Funktion zu kennen. Hier vom Perldoc kopiert:

C:> perldoc -f Herde

use Fcntl ':flock'; # import LOCK_* constant 

sub lock { 
    flock(MBOX,LOCK_EX); 
    # and, in case someone appended 
    # while we were waiting... 
    seek(MBOX, 0, 2); 
} 

sub unlock { 
    flock(MBOX,LOCK_UN); 
} 

open(MBOX, ">>/usr/spool/mail/$ENV{'USER'}")