That doesn't seem like a Perl, nor an Apache problem to me.
HTTP 302 is a perfectly valid return status. It's up to the
browser to decide what to do with it. A browser could request
the page given in the Location header and display that instead.
It looks like your browser decides to display a message.
I suggest finding out when your browser requests the page
its redirected to and when it doesn't (some browser only do
a limited number of redirects before giving up).
Abigail