Um. Off the top of my head, I don't know where it actually documented. It's one of those things that I picked up by osmosis through reading PM. Probably from tye. He's the source of most of the useful stuff regarding Perl and Win32 around here.

As for how it works, that's fairly easily explainable. It is a Win32-only special case coded into the sources. If the first argument to system is (exactly) '1', then the code adds the CREATE_NEW_PROCESS_GROUP flag to the creation flags parameter passed to CreateProcess(), which has the required effect of 'detaching' the process created from it's parent.

Ah, so it's CREATE_NEW_PROCESS_GROUP. In one of my attempts I tried the same using Win32::Process instead of system(), and looking through the flags I thought DETACHED_PROCESS
might do the job (it doesn't). Strange that I didn't even notice CREATE_NEW_PROCESS_GROUP.

DETACHED_PROCESS is used to create processes that don't have a console. They are 'detached' from the console; think *nix-style deamon processes and win32 services (though the latter can also have a console!).