note mdillon I think that should be: <code> s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg </code> In fact, that's pretty much exactly what's in [cpan://URI::Escape], except that the module also handles scalar v. list context and multiple arguments. Using uri_unescape still seems preferable to me, since the resource overhead of using the module is basically nil and the mnemonic benefit of seeing uri_unescape instead of a regex is considerable. 434301 434393