=over

=item $REAL_GROUP_ID

=item $GID

=item $(
X<$(> X<$GID> X<$REAL_GROUP_ID>

The real gid of this process.  If you are on a machine that supports
membership in multiple groups simultaneously, gives a space separated
list of groups you are in.  The first number is the one returned by
C<getgid()>, and the subsequent ones by C<getgroups()>, one of which may be
the same as the first number.

However, a value assigned to C<$(> must be a single number used to
set the real gid.  So the value given by C<$(> should I<not> be assigned
back to C<$(> without being forced numeric, such as by adding zero.  Note
that this is different to the effective gid (C<$)>) which does take a
list.

You can change both the real gid and the effective gid at the same
time by using C<POSIX::setgid()>.  Changes
to C<$(> require a check to C<$!>
to detect any possible errors after an attempted change.

Mnemonic: parentheses are used to I<group> things.  The real gid is the
group you I<left>, if you're running setgid.

=back