Solaris上でman 2 flockすると分かるのですが、どうやら
いくつかのバージョンのSolarisのflockは、NFSなどネッ
トワーク越しのロックがうまく働かないようです。

> % uname -a
> SunOS 4.1.4-JL 2 sun4m

の、man 2 flockから。

> BUGS
>      Locks obtained through the flock() mechanism are known  only
>      within the system on which they were placed.  Thus, multiple
>      clients may successfully acquire exclusive locks on the same
>      remote  file.   If  this behavior is not explicitly desired,
>      the fcntl(2V)  or  lockf(3)  system  calls  should  be  used
>      instead;  these make use of the services of the network lock
>      manager (see lockd(8C)).

要するに、flockだと、ネットワーク越しの場合一度に複
数のクライアントが同一のファイルに対して排他ロックに
成功してしまうので、代わりにfcntl(2V)やlock(3)を使う
必要がある、ということです。

#Solaris付属の日本語版マニュアルは訳がちょっと変で
#す。csh上でunsetenv LANGして原文を参照しました。

で、ちょっと調べてみたのですが、

http://www.att.or.jp/perl/faq/newfaq5j.html#newfaq5_how_13
http://www.chuo-u.ac.jp/doc/perl5/perlfaq5/How_can_I_lock_a_file_.html

この問題を回避するには、Perl5の場合、Configureを走ら
せる際に、-Ud_flockを指定してflockを使わないよう
に明示的にPerl5を再構築する必要があります。

% ./Configure -Ud_flock

Perlを再構築せずにNFS越しのロックを行う為には、
Perlのfcntl関数を使う方法や、CPANにあるFile::Lockを
使う方法などがあるようです。

私は仕事ではSolarisはあまり使わないのでこの件に関し
ては疎いのですが、詳しい方がいらっしゃいましたらフォ
ローお願いします。