Вопрос

У меня есть 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'}") 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top