Throughout the code, you'll see a lot of string mangling to manipulate query strings. Examples from opac-search.pl: $query_cgi = "tag=" . uri_escape_utf8( $tag ) . "&" . $query_cgi; $pasarParams .= '&query=' . uri_escape_utf8($query); $pasarParams .= '&count=' . uri_escape_utf8($results_per_page); $pasarParams .= '&simple_query=' . uri_escape_utf8($simple_query); $limit_cgi_not_availablity =~ s/&limit=available//g if defined $limit_cgi_not_availablity; It would be good to have a more reliable unit-tested way of creating and editing query strings. I have a module called Koha::Util::URL which should be able to help. I'm hoping to put together a patch tomorrow.
As a side note, I actually thought of this while creating a new "Peer-Reviewed" facet for the search results, which imitates that "Availability" facet to a degree. I didn't like the way limit=available was being handled, so I wrote an alternative.