forkする前にhttpヘッダから取得した値を環境変数にセットしPerlはそれを読み出しているだけです。
環境変数は標準入出力と並んで主要なデータやり取りの手段でGUI、CUIといった区別無くC、Java、PHP等様々な言語で利用されています。
CGIがこのやり取りの手段を提供しているのは事実ですがCGIに依存しているという言い方は誤解を招くと思います。