The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Workarounds for some known bugs in browsers.

Preventing QUERY_STRING from getting corrupted because of &entity key names

In a URL which contains a query string, if the string has multiple parts separated by ampersands and it contains a key named "reg", for example http://my.site.com/foo.pl?foo=bar&reg=foobar, then some browsers will interpret &reg as an SGML entity and encode it as ®. This will result in a corrupted QUERY_STRING. If you encounter this problem, then either you should avoid using such keys or you should separate parameter pairs with ; instead of &. CGI.pm, Apache::Request and $r->args() support a semicolon instead of an ampersand as a separator. So your URI should look like this: http://my.site.com/foo.pl?foo=bar;reg=foobar.

Note that this is only an issue when you are building your own URLs with query strings. It is not a problem when the URL is the result of submitting a form because the browsers have to get that right.

IE 4.x does not re-post data to a non-port-80 URL

One problem with publishing 8080 port numbers (or so I have been told) is that IE 4.x has a bug when re-posting data to a non-port-80 URL. It drops the port designator and uses port 80 anyway.

See Publishing Port Numbers other than 80.