Où est flock () pour Perl sous Windows?
Question
Je souhaite exécuter un script Perl sous Windows, en utilisant Strawberry Perl ou < un href = "http://www.activestate.com" "rel =" nofollow noreferrer "> ActivePerl ; Je me fiche de qui. Cependant, ce script utilise des appels flock ()
, qui ne semblent pas être inclus dans aucune de ces versions de Perl.
Quelqu'un peut-il aider à mettre cela sur pied?
La solution
Le module Fcntl est-il installé? Essayez ceci:
perl.exe -MFcntl -e 1
S'il se plaint, le module Fcntl n'est pas installé. S'il ne se plaint pas, alors vous avez accès à Fcntl :: flock, alors mettez ceci dans votre script:
use Fcntl qw(:DEFAULT :flock);
et c'est parti.
Autres conseils
Essayez d’utiliser perldoc -f flock pour vérifier que tout est pris en charge & amp; examinez ensuite l’exemple donné pour connaître les critères d’utilisation de la fonction. Ici copié du perldoc:
C: > troupeau perldoc -f
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'}")