X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=README.os2;h=903702aa0dda9cff0e3b5ff22c6dd58f6aaafa29;hb=a3df0bea97cec95963f67c165dcf0364183dd467;hp=4cef16f0aa862f569986fc91a88dd5825c16c966;hpb=eb447b8692d1c89cd24ab421497dcff667570be4;p=p5sagit%2Fp5-mst-13.2.git diff --git a/README.os2 b/README.os2 index 4cef16f..903702a 100644 --- a/README.os2 +++ b/README.os2 @@ -290,6 +290,9 @@ There are also endless possibilities to use I of *nixish shell (like F supplied in the binary distribution), you need to follow the syntax specified in L. +Note that B<-S> switch enables a search with additional extensions +F<.cmd>, F<.btm>, F<.bat>, F<.pl> as well. + =head2 Starting OS/2 (and DOS) programs under Perl This is what system() (see L), C<``> (see @@ -305,7 +308,31 @@ L<"Frequently asked questions">), and perl should be able to find it The only cases when the shell is not used is the multi-argument system() (see L)/exec() (see L), and one-argument version thereof without redirection and shell -meta-characters. +meta-characters. Perl may also start scripts which start with cookies +C or C<#!> directly, without an intervention of shell. + +If starting scripts directly, Perl will use exactly the same algorithm as for +the search of script given by B<-S> command-line option: it will look in +the current directory, then on components of C<$ENV{PATH}> using the +following order of appended extensions: no extension, F<.cmd>, F<.btm>, +F<.bat>, F<.pl>. + +Note that Perl will start to look for scripts only if OS/2 cannot start the +specified application, thus C will not look for a script if +there is an executable file F I on C. + +Note also that executable files on OS/2 can have an arbitrary extension, +but F<.exe> will be automatically appended if no dot is present in the name. +The workaround as as simple as that: since F and F denote the +same file, to start an executable residing in file F (no +extension) give an argument C to system(). + +The last note is that currently it is not straightforward to start PM +programs from VIO (=text-mode) Perl process and visa versa. Either ensure +that shell will be used, as in C, or start it using +optional arguments to system() documented in C module. This +is considered a bug and should be fixed soon. + =head1 Frequently asked questions @@ -777,6 +804,10 @@ F. =head2 Testing +If you haven't yet moved perl.dll onto LIBPATH, do it now(alternatively, if +you have a previous perl installation you'd rather not disrupt until this one +is installed, copy perl.dll to the t directory). + Now run make test @@ -908,6 +939,8 @@ to 1. =head2 Installing the built perl +If you haven't yet moved perl.dll onto LIBPATH, do it now. + Run make install @@ -1082,8 +1115,13 @@ eventually). =item -Since L is present in EMX, but is not functional, the same is -true for perl. Here is the list of things which may be "broken" on +Since L is present in EMX, but is not functional, it is +emulated by perl. To disable the emulations, set environment variable +C. + +=item + +Here is the list of things which may be "broken" on EMX (from EMX docs): =over @@ -1099,7 +1137,7 @@ L is not required and not implemented. =item * -L is not yet implemented (dummy function). +L is not yet implemented (dummy function). (Perl has a workaround.) =item * @@ -1155,6 +1193,12 @@ a dummy implementation. C special-cases F and F. +=item C + +Since L is present in EMX, but is not functional, it is +emulated by perl. To disable the emulations, set environment variable +C. + =back =head1 Perl flavors @@ -1334,6 +1378,12 @@ memory handling code is buggy. Specific for EMX port. Gives the directory part of the location for F. +=head2 C + +Specific for EMX port. Since L is present in EMX, but is not +functional, it is emulated by perl. To disable the emulations, set +environment variable C. + =head2 C or C Specific for EMX port. Used as storage place for temporary files, most