Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: Re: Re: executing a .bat or .exe from within perl script ??

by Newguy2Perl (Initiate)
on Jul 03, 2001 at 02:04 UTC ( [id://93339]=note: print w/replies, xml ) Need Help??


in reply to Re: Re: executing a .bat or .exe from within perl script ??
in thread executing a .bat or .exe from within perl script ??

hi andreychek, thanks for your answer. the 'system' command was what i was looking for. if you have time can you state an example where i would use 'exec over system' and not just 'system' all the time? Thank you
  • Comment on Re: Re: Re: executing a .bat or .exe from within perl script ??

Replies are listed 'Best First'.
Re: Re: Re: Re: executing a .bat or .exe from within perl script ??
by andreychek (Parson) on Jul 03, 2001 at 02:53 UTC
    Well, you would use 'exec' if you wanted to run an external program as the last step of your Perl script. Control would never return to your Perl script, you'd be finished the program at that point.

    You would choose 'system' if you were in the middle of your Perl script, you wanted to run an external program, but you had more Perl code to be run before you were finished. Even if you simply wanted to check to return status of the program you run, you'd need to use system.

    In most cases, if you have system vs. exec, system tends to be the one you want to use. If you use exec, you have to trust the external program that it run correctly, there wouldn't be a way from Perl to check that, since the Perl script quits at the exec statement, and gives full control to the external program.

    I tried to think of an example of a good use for exec, but every example I could come up with seemed to be better off with system -- largely because I felt it would be best to check that program's return status. However, someone else may be able to come up with an example of where that wouldn't be necessary.
    -Eric

      Hi Eric. I have used 'System' in the middle of the Perl script to launch .exe File. It launched successfully, But it will be in the pause mode until we close that .exe File. Ant then the rest of the code will run. Do you we have any other way that, the code should run until script end? I also tried using subroutines. But does not work. Hence instead i used 'exec'at the end of the script and then called a another part of Perl script.

        If you do not want to wait for the exe program to finish, you can use the Windows-specific form of system (see perlport):

        system( 1, "C:\\Path\\to\\that.exe" ) == 0 or warn "Couldn't launch program: $^E";

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://93339]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (1)
As of 2024-04-25 19:43 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found