Perl5 リファレンス

       semop KEY,OPSTRING
               Calls the System V IPC function semop to perform
               semaphore operations such as signaling and
               waiting.  OPSTRING must be a packed array of semop
               structures.  Each semop structure can be generated
               with `pack("sss", $semnum, $semop, $semflag)'.
               The number of semaphore operations is implied by
               the length of OPSTRING.  Returns true if
               successful, or false if there is an error.  As an
               example, the following code waits on semaphore
               $semnum of semaphore id $semid:

                   $semop = pack("sss", $semnum, -1, 0);
                   die "Semaphore trouble: $!\n" unless semop($semid, $semop);

               To signal the semaphore, replace `-1' with `1'.
               See also `IPC::SysV' and `IPC::SysV::Semaphore'