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?

War es hilfreich?

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'}") 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top