Где flock () для Perl в Windows?
Вопрос
У меня есть Perl-скрипт, который я хотел бы запустить в Windows, используя Strawberry Perl или < a href = "http://www.activestate.com" rel = "nofollow noreferrer"> ActivePerl ; Мне все равно, какие. Однако в этом сценарии используются вызовы flock()
, которые, похоже, не включены ни в одну из этих версий Perl.
Может ли кто-нибудь помочь с этим?
Решение
Установлен ли модуль Fcntl? Попробуйте это:
perl.exe -MFcntl -e 1
Если он жалуется, у вас не установлен модуль Fcntl. Если он не жалуется, то у вас есть доступ к Fcntl :: flock, поэтому вставьте это в свой скрипт:
use Fcntl qw(:DEFAULT :flock);
и пошли.
Другие советы
Попробуйте использовать perldoc -f flock, чтобы проверить, что поддерживается & amp; затем посмотрите на данный пример, чтобы узнать критерии использования функции. Здесь скопировано из 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'}")