5

我有一个要在 Windows 上运行的 Perl 脚本,使用Strawberry PerlActivePerl;我不在乎哪个。然而,这个脚本使用flock()调用,这似乎不包含在任何一个 Perl 版本中。

任何人都可以帮助启动并运行它吗?

4

2 回答 2

6

是否安装了 Fcntl 模块?试试这个:

perl.exe -MFcntl -e 1

如果它抱怨,你没有安装 Fcntl 模块。如果它没有抱怨,那么你可以访问 Fcntl::flock,所以把它放在你的脚本中:

use Fcntl qw(:DEFAULT :flock);

然后你就走了。

于 2009-01-25T01:24:02.253 回答
1

尝试使用 perldoc -f flock 检查是否支持,然后查看给定示例以了解该函数的使用标准。这里从 perldoc 复制:

C:>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'}") 
于 2009-01-25T09:32:33.983 回答