URI::Escape のバージョン問題

  • 投稿日:
  • by
  • カテゴリ:

URI::Escape には escape_char という関数がある。
これはなんと同じバージョンでも実装が異なる。
というのも、これは URI::Escape 単体でリリースされているのではなく、 URI のパッケージに付属するもので、 URI:: 以下のモジュールのバージョン管理が URI と揃っていないから。
例えば URI@1.60 にも URI@1.76 にも URI::Escape@3.31 が付属している上に中身が違う。OMG
なので cpanfile で

requires 'URI::Escape'  => '==3.31';
と書いても、期待するものが得られるとは限らない。
現在の URI の最新版は 1.76 なので、最新の実装がほしいなら
requires 'URI'  => '==1.76';
と書かなければならない。

ということを今日は author の方から教わりました。
https://github.com/libwww-perl/URI/issues/73