2009-01-25 13 views
5

Tôi có một tập lệnh Perl mà tôi muốn chạy trên Windows, sử dụng Strawberry Perl hoặc ActivePerl; Tôi không quan tâm. Tuy nhiên, tập lệnh này sử dụng các cuộc gọi flock(), có vẻ như không được bao gồm trong một trong các phiên bản Perl đó.Đâu là đàn() cho Perl trên Windows?

Có ai có thể giúp thiết lập và hoạt động này không?

Trả lời

6

Mô-đun Fcntl đã được cài đặt chưa? Hãy thử điều này:

perl.exe -MFcntl -e 1 

Nếu nó than phiền, bạn chưa cài đặt mô-đun Fcntl. Nếu nó không khiếu nại, thì bạn có quyền truy cập vào Fcntl :: flock, vì vậy hãy đặt mã này vào tập lệnh của bạn:

use Fcntl qw(:DEFAULT :flock); 

và tắt đi.

1

Hãy thử sử dụng đàn perldoc -f để kiểm tra những thứ được hỗ trợ & sau đó xem xét ví dụ đã cho để biết tiêu chí sử dụng của hàm. Dưới đây sao chép từ perldoc:

C:> perldoc -f đổ xô

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'}")