クッキーデータの読み込み
書込み時のdomain、pathが一致する場合、
HTTP_COOKIEという環境変数(パソコンの変数)に渡される。
この変数は$ENV{‘HTTP_COOKIE’}と記述することにより、
CGIの中から参照することができる。

しかしこのままでは使えないので、
クッキーの変数名とその値(複数のクッキーが設定してある場合はそれぞれ)を
切り離して取り出さなければならない。例えば、
name=ikeda; address=asahi3-1-1;
というデータがクッキーに書き込まれている場合、
「; 」で分割し、それぞれをさらに「=」で分割しなければならない。

これらの手順はCGIデータの受け取りと同様に、
サブルーチンを利用(今回は自分で作製)して実行する。

サブルーチンは、

#
# Cookieの値を読み出す
#
sub getCookie {
foreach $xx (split(/; /, $ENV{'HTTP_COOKIE'})) {
($name, $value) = split(/=/, $xx);
$COOKIE{$name} = $value;
}
}

のように書くことができる。

subはサブルーチンの宣言文で、getCookieというサブルーチンを定義している。
その後、splitでクッキーの保存されている環境変数を「;」で分割し、
分割されたそれぞれの値を順次$xxに保存しforeachの{ }の中を実行する。
{ }の中では「=」で、変数名とその値を切り離し、
それぞれ$nameと$valueというCGIの変数に保存している。
最後に、切り離したデータをCOOKIEという名前の連想配列の$nameの場所に保存している。