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


in reply to Re^9: exec() on Windows
in thread exec() on Windows

Just tested it again but with a new script:

#!perl -w use strict; warn "(1) Starting up a browser...\n"; system(1, "son.html"); warn "(2) Browser quits...\n"; sleep 10; warn "(3) Bye, bye...\n"; exit 0;

You were right: that form of the system() call did not wait for the browser to quit... the console showed the first two messages almost at the same time, but after 10 seconds, the third message appeared and the console did NOT close... 'til I closed the browser.

Then, the problem is another :-(

BTW, I do need the console to be opened, as it shows some messages about the file being generated, so it is not a flashing console.

About pl2bat, it places your perl code inside a bat script, just to allow you to call it from a command line without having to type the .pl extension (if it is associated to perl.exe) or having to call perl.exe with your script as a parameter (if not). Anyway, you still need have perl installed in your box. pp from PAR::Packer builds an .exe file that contains the "parl" interpreter, your script and all required modules. No perl installation is needed. When run, all is extracted on the fly... of course, a 10KB script will be turned into a 4MB exe file, and there is a startup delay, but I can live with that.

Replies are listed 'Best First'.
Re^11: exec() on Windows
by BrowserUk (Patriarch) on May 28, 2010 at 04:32 UTC

    I have to assume that it is an artefact of pp then. But, as start /b works for you, it probably not worth the effort of trying to track down the cause.

Re^11: exec() on Windows
by ikegami (Patriarch) on May 28, 2010 at 04:48 UTC
    It would be interesting to try POSIX's _exit instead of exit, but that's not as good a solution as start /b if that works.