8年前に書いたものを概ねそのままで使い続けていたパラメータ展開周りの処理をごっそり入れ替えてみたので、例によってなんかぶっ飛ぶかも。
以下、SSIメモ。
use CGI;
my $q = new CGI;
foreach my $key($q->param)
{
foreach($q->param($key))
{
print "param($key): $_\n";
}
}
my $i = 0;
foreach(@ARGV)
{
print "\$ARGV[$i]: $_\n";
$i++;
}
# <!--#include virtual="foo.pl?foo:bar+baz:qux"-->
# param(keywords): foo:bar
# param(keywords): baz:qux
# $ARGV[0]: foo:bar
# $ARGV[1]: baz:qux
# <!--#include virtual="foo.pl?foo:bar baz:qux"-->
# param(keywords): foo:bar
# param(keywords): baz:qux
# $ARGV[0]: foo:bar baz:qux
# <!--#include virtual="foo.pl?foo:bar&baz:qux"-->
# param(foo): bar baz=qux
# <!--#include virtual="foo.pl?foo=bar+baz=qux"-->
# param(foo): bar baz=qux
# <!--#include virtual="foo.pl?foo=bar baz=qux"-->
# param(foo): bar baz=qux
# <!--#include virtual="foo.pl?foo=bar&baz=qux"-->
# param(foo): bar
# param(baz): qux
ついでにPATH_INFOにも対応。
以下のようなURLでアクセスができるようになったかも。
http://sakanaya.kir.jp/ymnet/diary/d/20100521
http://sakanaya.kir.jp/ymnet/diary/d/20100521/2
http://sakanaya.kir.jp/ymnet/diary/d/SandBox