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

semctl - SysV semaphore control operations

semctl ID,SEMNUM,CMD,ARG

Calls the System V IPC function semctl(). You'll probably have to say
use IPC::SysV;
first to get the correct constant definitions. If
CMD is
IPC_STAT or
GETALL, then
ARG must be a variable which will hold the returned semid_ds structure or semaphore value array. Returns like
ioctl(): the undefined value for error, ``0 but true'' for zero, or the actual return value otherwise. See also IPC::SysV and IPC::Semaphore documentation.