Subject: | If find() dies URI::URL::strict isn't returned to its original state |
When find() is called, URI::Find forces URI::URL to be strict globally
using URI::URL::strict(1) and then later restores strict back to its
original value. If something goes wrong within find, such as the callback
throwing an exception, or some other unrelated issue, then strict is never
returned back to its original value.
The issue rears its head when using this module in an environment where
modules are preloaded, such as in a web application. The result is some
pretty unexpected issues when you rely on URI being able to handle
unsupported schemes elsewhere in an application. It's also quite tricky to
debug.
Happy to supply a patch, but I'm uncertain if there's another reason
behind this behaviour.