in reply to mod_perl redirect

It's pretty much the same all around. You are generating a "Location" HTTP header and are (hopefully) using the correct HTTP status code, depending on what exactly you are trying to do.

Here's the definition of HTTP/1.1 status codes, look at 303 and 307. The main difference between those is how POST is handled.

"Believe me, Mike, I calculated the odds of this succeeding against the odds I was doing something incredibly stupid… and I went ahead anyway." (Crow in "MST3K The Movie")