Onde está flock () para Perl no Windows?
Pergunta
Eu tenho um script Perl que eu gostaria de ser executado no Windows, usando morango Perl ou < a href = "http://www.activestate.com" rel = "nofollow noreferrer"> ActivePerl ; Eu não me importo que. Este script no entanto, usos flock()
chamadas, o que não parece ser incluídos em qualquer uma dessas versões do Perl.
alguém pode ajudar obter esta instalado e funcionando?
Solução
é o módulo Fcntl instalado? Tente isto:
perl.exe -MFcntl -e 1
Se ele reclama, você não tem o módulo Fcntl instalado. Se ele não reclamar, então você tem acesso a Fcntl :: rebanho, para colocar isso no seu script:
use Fcntl qw(:DEFAULT :flock);
e temos que ir.
Outras dicas
Tente utilizar perldoc -f migram para verificar as coisas são suportados e, em seguida, olhar para o exemplo dado conhecer os critérios de uso da função. Aqui copiado do perldoc:
C:> perldoc -f rebanho
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'}")