[Catalyst] uri_for() corrupts query parameters hash for caller

Byron Young Byron.Young at riverbed.com
Fri Jun 12 21:43:18 GMT 2009


Hey everybody,

I ran into an issue at $work where we keep passing the same $query_params hashref to a number of uri_for() calls successively, but if there are characters in the query params that need to be escaped they get escaped each time, leading to sequences like

?filter=Not%25252BRun 

after the same $query_params have been run through uri_for a few of times (because the '%' keeps getting escaped).  The query hash was originally { filter => 'Not Run' }.

So, we patched uri_for() here at work to create a copy of $params and work with that, and that fixes the issue.  However, it seems like such a simple fix that I feel like it must have been thought of and discussed and shot down in the past, but I didn't find anything in the list archives indicating that.  Is there some reason uri_for() does things that way?

If not I'll gladly supply patch + test.

Thanks,
Byron



More information about the Catalyst mailing list