summaryrefslogtreecommitdiff
path: root/pod/perlport.pod
diff options
context:
space:
mode:
authorThomas Sibley <tsibley@cpan.org>2014-06-05 10:17:42 -0700
committerTony Cook <tony@develop-help.com>2014-06-09 09:45:01 +1000
commit94d4006a6dfdde1becb6ac3d43bd51a5b9ffd95f (patch)
tree3d161a21a9d58f13cb36ea27748e40f9416a5526 /pod/perlport.pod
parent59b3baca0fd7b0de1c42016474d2ebfe8e8d090e (diff)
downloadperl-94d4006a6dfdde1becb6ac3d43bd51a5b9ffd95f.tar.gz
Document that "exec LIST" and "system LIST" may fall back to the shell on Win32
As noted on p5p [1] and subsequently discussed [2]. The Win32 functions for handling exec() and system() attempt to specially handle shell builtins by catching spawn failures and re-attempting the spawn using the shell with the given argument LIST. If "exec PROGRAM LIST" syntax (or the equivalent for system()) is used, then only the specified PROGRAM will ever be run (although Perl will still try the spawn twice on Win32 if PROGRAM doesn't exist or otherwise can't be executed). [1] http://www.nntp.perl.org/group/perl.perl5.porters/2014/04/msg214556.html [2] http://www.nntp.perl.org/group/perl.perl5.porters/2014/04/msg214564.html
Diffstat (limited to 'pod/perlport.pod')
-rw-r--r--pod/perlport.pod6
1 files changed, 6 insertions, 0 deletions
diff --git a/pod/perlport.pod b/pod/perlport.pod
index 8f01e20ce3..8b71a6e3ab 100644
--- a/pod/perlport.pod
+++ b/pod/perlport.pod
@@ -1606,6 +1606,9 @@ Invokes VMS debugger. (VMS)
=item exec
+C<exec LIST> without the use of indirect object syntax (C<exec PROGRAM LIST>)
+may fall back to trying the shell if the first spawn() fails. (Win32)
+
Does not automatically flush output handles on some platforms.
(SunOS, Solaris, HP-UX)
@@ -2011,6 +2014,9 @@ the child program uses a compatible version of the emulation library.
I<scalar> will call the native command line direct and no such emulation
of a child Unix program will exists. Mileage B<will> vary. (S<RISC OS>)
+C<system LIST> without the use of indirect object syntax (C<system PROGRAM LIST>)
+may fall back to trying the shell if the first spawn() fails. (Win32)
+
Does not automatically flush output handles on some platforms.
(SunOS, Solaris, HP-UX)