ちょっと思った。
use Fcntl;
をしといて、
sysopen
を使ってLOCK_EXとか呼べないかな。