Distributed locking is always inefficient; in high-level languages (like perl) it's unusably inefficient. If you need distributed locking, get a distributed database engine and let it do the locking for you. Call it using the usual perl/database bindings.
no subject