See the current Perl documentation for IPC::Semaphore.
Here is our local, out-dated (pre-5.6) version:

IPC::Semaphore - SysV Semaphore IPC object class

use IPC::SysV qw(IPC_PRIVATE S_IRWXU IPC_CREAT);
use IPC::Semaphore;
$sem = new IPC::Semaphore(IPC_PRIVATE, 10, S_IRWXU | IPC_CREAT);
$sem->setall( (0) x 10);
@sem = $sem->getall;
$ncnt = $sem-&g

METHODS
KEY. NSEMS is the number of semaphores in the set.
A new set is created if
KEY is equal to IPC_PRIVATE
KEY does not already have a semaphore identifier associated with it, and <EM>FLAGS</EM> & IPC_CREAT is true.
On creation of a new semaphore set FLAGS is used to set the permissions.
SEM to become greater than it's current value
SEM.
SEM.
SEM to become zero.
OPLIST is a list of operations to pass to semop. OPLIST is a concatenation of smaller lists, each which has three values. The first
is the semaphore number, the second is the operation and the last is a
flags value. See semop for more details. For example
$sem->op(
0, -1, IPC_NOWAIT,
1, 1, IPC_NOWAIT
);
set will set the following values of the stat structure associated with the semaphore set.
uid
gid
mode (oly the permission bits)
set accepts either a stat object, as returned by the stat method, or a list of name-value pairs.
VALUES list.
VALUES must contain the correct number of values.
Nth value in the semaphore set to VALUE
IPC::Semaphore::stat which is a sub-class of
Class::Struct. It provides the following fields. For a description of these fields see
you system documentation.
uid
gid
cuid
cgid
mode
ctime
otime
nsems
SysV Struct semget semctl semop
Graham Barr <gbarr@pobox.com>
Copyright (c) 1997 Graham Barr. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.