Где flock () для Perl в Windows? - PullRequest
       54

Где flock () для Perl в Windows?

5 голосов
/ 25 января 2009

У меня есть Perl-скрипт, который я хотел бы запустить в Windows, используя Strawberry Perl или ActivePerl ; Мне все равно, какие. Однако в этом сценарии используются вызовы flock(), которые, похоже, не включены ни в одну из этих версий Perl.

Кто-нибудь может помочь запустить и запустить?

Ответы [ 2 ]

6 голосов
/ 25 января 2009

Установлен ли модуль Fcntl? Попробуйте это:

perl.exe -MFcntl -e 1

Если он жалуется, у вас не установлен модуль Fcntl. Если он не жалуется, то у вас есть доступ к Fcntl :: flock, поэтому вставьте это в ваш скрипт:

use Fcntl qw(:DEFAULT :flock);

и поехали.

1 голос
/ 25 января 2009

Попробуйте использовать perldoc -f flock, чтобы проверить, что вещи поддерживаются, а затем изучите данный пример, чтобы узнать критерии использования функции. Вот скопированный из 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'}") 
...