Dov'è flock () per Perl su Windows?
Domanda
Ho uno script Perl che mi piacerebbe eseguire su Windows, usando Strawberry Perl o < a href = "http://www.activestate.com" rel = "nofollow noreferrer"> ActivePerl ; Non mi interessa quale. Questo script utilizza tuttavia le chiamate flock ()
, che non sembrano essere incluse in nessuna di quelle versioni di Perl.
Qualcuno può aiutarti a metterlo in funzione?
Soluzione
Il modulo Fcntl è installato? Prova questo:
perl.exe -MFcntl -e 1
Se si lamenta, non è installato il modulo Fcntl. Se non si lamenta, hai accesso a Fcntl :: flock, quindi inseriscilo nel tuo script:
use Fcntl qw(:DEFAULT :flock);
e via.
Altri suggerimenti
Prova a usare perldoc -f flock per verificare che le cose siano supportate & amp; quindi guarda l'esempio dato per conoscere i criteri di utilizzo della funzione. Qui copiato dal perldoc:
C: > perldoc -f flock
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'}")