URI

URI表記を分割/合成する。http以外のURI表記、例えば、file: や mailto: も扱うことが出来る。

実際には、それぞれのURIは、URI::httpやURI::mailtoなどの派生オブジェクトになっており、スキームによって定義されているメソッドが異なる。スキーム不明な文字列を解析する時は、schemeメソッドでスキームを調べて、未定義メソッドを実行しない様に注意する必要がある。

use URI;
パッケージをロードする。

my $uri = URI->new("https://www.facebook.com:80/photo.php?fbid=56&set=a.56&type=1");
インスタンスを生成する。

$uri->scheme;
上記の例では、"http"を返す。": "や"//"は付かない。
パラメータを指定した時は、オブジェクト内部の該当部分を書き換える。

$uri->host;
上記の例では、"www.facebook.com"を返す。
パラメータを指定した時は、オブジェクト内部の該当部分を書き換える。

$uri->port;
上記の例では、"80"を返す。
パラメータを指定した時は、オブジェクト内部の該当部分を書き換える。

$uri->host_port;
上記の例では、"www.facebook.com:80"を返す。
パラメータを指定した時は、オブジェクト内部の該当部分を書き換える。

$uri->path;
上記の例では、"/photo.php"を返す。先頭の"/"込の絶対パス表記。
パラメータを指定した時は、オブジェクト内部の該当部分を書き換える。

$uri->query;
上記の例では、"fbid=56&set=a.56&type=1"を返す。
URIエンコードが必要な場合は、エンコードされる。
パラメータを指定した時は、オブジェクト内部の該当部分を書き換える。

$uri->query_param("fbid");
上記の例では、"56"を返す。
URIエンコードは、デコードされる。

$uri->query_form( $key1 => $val1, $key2 => $val2, ... );
ハッシュを使ってオブジェクト内部のquery部分を書き換える。

$uri->canonical;
正規化されたURI表記を返す。
"正規化"の意味は、スキームによって異なるが、概ね、URIエンコードされたURI表記全体と思えばよい。

$uri->to;
mailtoスキームで、メール送信先アドレスを返す。複数宛先の場合はカンマ区切りの文字列が返る。