in reply to Using Win32::Mutex to guarantee only one process will run at a time.
Without looking at the Win32 API and its dark magic, I think both examples contain the same race condition between open and new. Looking at CPAN, both modules clearly state that new behaves like open when the mutex / semaphore already exists. The return value of wait should tell you which of both cases actually happened.