プロセスグループを取得する
getpgrp は、PID に指定したプロセスのプロセスグループ ID を返します。
                現在のプロセスのプロセスグループ ID を取得したいなら、PID に 0 を指定します。
my $pgid = getpgrp(0);
            なお、同じプロセスグループのプロセスは同じシグナルを同時に受けることができます。
                通常、fork で生成した子プロセスは、
                親プロセスと同じプロセスグループ ID を持ちます。
次のサンプルコードは、まず自身のプロセスグループ ID と自身のプロセス ID を出力します。
                そして、fork で 3 つの子プロセスを生成します。
                子プロセスでも、自身のプロセスグループ ID と自身のプロセス ID を出力します。
# 親プロセスのプロセスグループ ID と自身のプロセス ID
print 'Parent: getpgrp=', getpgrp(0), ', $$=', $$, "\n";
my @pids;
for ( my $i = 0 ; $i < 3 ; $i++ ) {
    # 子プロセスをフォーク
    $pids[$i] = fork();
    # 子プロセスの処理
    unless ( $pids[$i] ) {
        sleep( $i + 1 );
        print 'Child: getpgrp=', getpgrp(0), ', $$=', $$, "\n";
        exit 0;
    }
}
# すべての子プロセスが終了するのを待つ
for my $pid (@pids) {
    waitpid( $pid, 0 );
}
            上記コードを実行すると、次のような結果が出力されます。
Parent: getpgrp=104, $$=104
Child: getpgrp=104, $$=105
Child: getpgrp=104, $$=106
Child: getpgrp=104, $$=107
            親プロセスと子プロセスすべてでプロセスグループ ID (104) が同じことが分かります。
getpgrp は Windows では利用できません。
                "The getpgrp function is unimplemented" のようなエラーが出力されますので注意してください。