2008-04-12

CGI.pm でパラメータではないクエリ文字はキーワードリストになる

次の "新宿 渋谷" の例のように、Perl の CGI.pm で、パラメータ名と値という組み合わせではないクエリ文字列が指定されたとき、
# 新宿 渋谷
http://example.com/foo.cgi?%E6%96%B0%E5%AE%BF+%E6%B8%8B%E8%B0%B7
そのクエリ文字列を取得するとき、次の2とおりの方法があります。
$cgi->keywords;
もしくは、
$cgi->param('keywords');
です。

両サブルーチンともクエリ文字列を1つ以上の空白(\s+)で区切った配列を返します。CGI.pm ではこの配列をキーワードリストと呼んでいます。

違いもあります。後者はコンテキストに依存した振る舞いをします。リストを要求しているときは配列、スカラーを要求するときは配列の先頭要素を返します。

0 件のコメント: