in reply to shut down HTTP::SERVER::SIMPLE

At least on Linux (and probably other unices) you can signal your own process. Use the kill command:
kill 2, $$;
Here $$ is the pid of the current process (the one for the running script). The signal number is the same one you would use with kill at the command line. See man kill for a list or a pointer to the C header which has the list (it's usually called signal.h). I choose 2 (INT), which users get at the command line with CTRL-C. I know HTTP::Server::Simple doesn't trap that, because I have a manual trap for it in one of my scripts.

The Third Camel says this works differently for Windows, but the Third Camel is a few years old (published in 2000). It claims that on Windows, the kill command causes the process to exit with the signal number as its status (unless the signal is zero, which is not fatal). But that might be just what you want.

Phil