use Fcntl qw(:flock);
flock (LOCKF, LOCK_EX);

みたいにするのって、
flock(DAT, 1);
flock(DAT, 2);
flock(DAT, 4);
flock(DAT, 8)
とただやるのに、比べて、どんな利点があるんでしょうか?;