GetParam関数

「#--GetParam」で検索すると確実にヒットします。

この関数は、入力された内容を取得し、デコードした値を返します。

引数はなしで、戻り値は入力された値を格納した連想配列リファレンスです。

この関数のほとんどは、RSSリーダーのParam関数と同じです。

なのでまずは、そちらを参照してください。

ここでは大きく違う部分のみ見ていきましょう。

入力値の整理

この関数には、たくさんの入力値が送られてきます。

なのでループを使って、すべての入力値にアクセスできるようにします。

foreach (split(/&/, $query_string)) {
my ($key, $value) = split(/=/);
$value =~ tr/+/\x20/;
$value =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg;
$param{$key} = $value;
}

入力値は、「キー=値&キー=値&キー=値…」という形になっています。

なのでまずは、「&」で分割し、「キー=値」というペアを取り出します。

そして次に、「=」で再び分割すると、キーと値に分けることができます。

最後に連想配列「%param」の要素名としてキーで指定された名前を割り当て、そこにデコードした値を代入します。

ここで言うキーとは、FormタグのInputで指定されたnameのことです。

これに対して値は入力された文字列をさします。

戻り値

戻り値も異なり、入力された値を格納した連想配列リファレンスを返しています。

return \%param;

これでこの関数は終了です。