Perlメモ/パスの正規化 ファイルパスの妥当性をチェックするのにまず必要なパスの正規化。 基本的には、「Unixパス名の安全対策」(www.ipa.go.jp)を行なえばよいわけです。 ただ、今回抱えているケースで相対ディレクトリは相対ディレクトリとして正規化したかったので、そのあたりの修正。 というか、実はそれを先に書いた後、そういえばipaのページに同じようなのがあったな、と思い出したのでした。 当然ですが、できるものはほぼ同じになってしまいますね。 パスを正規化するためのサブルーチンは以下のようになります。 sub canonical_path { my $path = shift; my @parts = (); @parts = ('') if ($path =~ /^\//); foreach my $part (split('/', $path)) { if ($part