exec LIST
The exec() function executes a system command AND NEVER RETURNS. Use
the system() function if you want it to return.
If there is more than one argument in LIST, or if LIST is an array with
more than one value, calls execvp(3) with the arguments in LIST. If
there is only one scalar argument, the argument is checked for shell
metacharacters. If there are any, the entire argument is passed to
/bin/sh ™c for parsing. If there are none, the argument is split
into words and passed directly to execvp(), which is more efficient.
Note: exec() (and system(0) do not flush your output buffer, so you may
need to set $| to avoid lost output. Examples:
exec '/bin/echo', 'Your arguments are: ', @ARGV;
exec "sort $outfile | uniq";
If you don't really want to execute the first argument, but want to lie
to the program you are executing about its own name, you can specify
the program you actually want to run as an "indirect object" (without a
comma) in front of the LIST. (This always forces interpretation of the
LIST as a multi™valued list, even if there is only a single scalar in
the list.) Example:
$shell = '/bin/csh';
exec $shell '™sh'; # pretend it's a login shell
or, more directly,
exec {'/bin/csh'} '™sh'; # pretend it's a login shell
|
|
|