http://www.perlmonks.org?node_id=11111669


in reply to Win32 wperl open Console when system

Using cmd.exe to launch the default program will always open a console window (if none is open already), because cmd.exe is a console program:

qx{start "$pdf" /b };

If you want to avoid that, don't involve the start command of cmd.exe and instead do what the command does, by using the AssocQueryStringA function, as in this Stackoverflow post. Doing so shouldn't be too hard using Win32::API, but I can't test it right now.