Wo ist flock () für Perl unter Windows?
Frage
Ich habe einen Perl-Skript, das ich auf Windows laufen möchte, entweder Strawberry Perl oder < a href = "http://www.activestate.com" rel = "nofollow noreferrer"> ActivePerl ; Mir ist egal, welche. Dieses Skript verwendet jedoch flock()
Anrufe, die nicht in eine der beiden Versionen von Perl enthalten zu sein scheint.
Kann mir jemand helfen, diese zum Laufen?
Lösung
Ist das Fcntl Modul installiert? Versuchen Sie folgendes:
perl.exe -MFcntl -e 1
Wenn es beschwert sich, Sie haben nicht die 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 los geht.
Andere Tipps
Versuchen Sie perldoc mit -f strömen die Dinge zu überprüfen, werden unterstützt und suchen Sie dann in dem gegebenen Beispiel die Nutzungskriterien 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'}")