in reply to Re: Re: Referring to another perl script....
in thread Referring to another perl script....
C:\>perldoc -f system
system LIST
system PROGRAM LIST
Does exactly the same thing as "exec LIST", except that a fork
is done first, and the parent process waits for the child
process to complete. Note that argument processing varies
depending on the number of arguments. If there is more than one
argument in LIST, or if LIST is an array with more than one
value, starts the program given by the first element of the list
with arguments given by the rest of the list. If there is only
one scalar argument, the argument is checked for shell
metacharacters, and if there are any, the entire argument is
passed to the system's command shell for parsing (this is
"/bin/sh -c" on Unix platforms, but varies on other platforms).
If there are no shell metacharacters in the argument, it is
split into words and passed directly to "execvp", which is more
efficient.
Beginning with v5.6.0, Perl will attempt to flush all files
opened for output before any operation that may do a fork, but
this may not be supported on some platforms (see perlport). To
be safe, you may need to set $| ($AUTOFLUSH in English) or call
the "autoflush()" method of "IO::Handle" on any open handles.
The return value is the exit status of the program as returned
by the "wait" call. To get the actual exit value divide by 256.
See also "exec". This is *not* what you want to use to capture
the output from a command, for that you should use merely
backticks or "qx//", as described in "`STRING`" in perlop.
Return value of -1 indicates a failure to start the program
(inspect $! for the reason).
Like "exec", "system" allows you to lie to a program about its
name if you use the "system PROGRAM LIST" syntax. Again, see
"exec".
Because "system" and backticks block "SIGINT" and "SIGQUIT",
killing the program they're running doesn't actually interrupt
your program.
@args = ("command", "arg1", "arg2");
system(@args) == 0
or die "system @args failed: $?"
You can check all the failure possibilities by inspecting $?
like this:
$exit_value = $? >> 8;
$signal_num = $? & 127;
$dumped_core = $? & 128;
When the arguments get executed via the system shell, results
and return codes will be subject to its quirks and capabilities.
See "`STRING`" in perlop and "exec" for details.
|
MJD says you can't just make shit up and expect the computer to know what you mean, retardo! I run a Win32 PPM repository for perl 5.6x+5.8x. I take requests. ** The Third rule of perl club is a statement of fact: pod is sexy. |
|
|---|