¿Dónde está flock () para Perl en Windows?
Pregunta
Tengo un script de Perl que me gustaría ejecutar en Windows, usando Strawberry Perl o < a href = "http://www.activestate.com" rel = "nofollow noreferrer"> ActivePerl ; No me importa cual. Sin embargo, este script usa llamadas flock ()
, que no parece estar incluido en ninguna de esas versiones de Perl.
¿Alguien puede ayudar a poner esto en funcionamiento?
Solución
¿Está instalado el módulo Fcntl? Prueba esto:
perl.exe -MFcntl -e 1
Si se queja, no tiene el módulo Fcntl instalado. Si no se queja, entonces tienes acceso a Fcntl :: flock, así que pon esto en tu script:
use Fcntl qw(:DEFAULT :flock);
y listo.
Otros consejos
Intente usar perldoc -f flock para verificar que las cosas son compatibles & amp; luego mire el ejemplo dado para conocer los criterios de uso de la función. Aquí copiado del 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'}")