This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for d4f1bfe74 / #116553
[perl5.git] / pod / perlvms.pod
index d88e6b1..0362c3b 100644 (file)
@@ -518,14 +518,14 @@ Perl functions were implemented in the VMS port of Perl
     caller, chdir, chmod, chown, chomp, chop, chr,
     close, closedir, cos, crypt*, defined, delete, die, do, dump*, 
     each, endgrent, endpwent, eof, eval, exec*, exists, exit, exp, 
-    fileno, flock  getc, getgrent*, getgrgid*, getgrnam, getlogin, getppid,
-    getpwent*, getpwnam*, getpwuid*, glob, gmtime*, goto,
+    fileno, flock  getc, getgrent*, getgrgid*, getgrnam, getlogin,
+    getppid, getpwent*, getpwnam*, getpwuid*, glob, gmtime*, goto,
     grep, hex, ioctl, import, index, int, join, keys, kill*,
-    last, lc, lcfirst, lchown*, length, link*, local, localtime, log, lstat, m//,
-    map, mkdir, my, next, no, oct, open, opendir, ord, pack,
-    pipe, pop, pos, print, printf, push, q//, qq//, qw//,
-    qx//*, quotemeta, rand, read, readdir, readlink*, redo, ref, rename,
-    require, reset, return, reverse, rewinddir, rindex,
+    last, lc, lcfirst, lchown*, length, link*, local, localtime, log,
+    lstat, m//, map, mkdir, my, next, no, oct, open, opendir, ord,
+    pack, pipe, pop, pos, print, printf, push, q//, qq//, qw//,
+    qx//*, quotemeta, rand, read, readdir, readlink*, redo, ref,
+    rename, require, reset, return, reverse, rewinddir, rindex,
     rmdir, s///, scalar, seek, seekdir, select(internal),
     select (system call)*, setgrent, setpwent, shift, sin, sleep,
     socketpair, sort, splice, split, sprintf, sqrt, srand, stat,
@@ -938,12 +938,12 @@ F<PERL_ENV_TABLES> as follows:
 
 =item CRTL_ENV
 
-This string tells Perl to consult the CRTL's internal C<environ>
-array of key-value pairs, using I<name> as the key.  In most cases,
-this contains only a few keys, but if Perl was invoked via the C
-C<exec[lv]e()> function, as is the case for CGI processing by some
-HTTP servers, then the C<environ> array may have been populated by
-the calling program.
+This string tells Perl to consult the CRTL's internal C<environ> array
+of key-value pairs, using I<name> as the key.  In most cases, this
+contains only a few keys, but if Perl was invoked via the C
+C<exec[lv]e()> function, as is the case for some embedded Perl
+applications or when running under a shell such as GNV bash, the
+C<environ> array may have been populated by the calling program.
 
 =item CLISYM_[LOCAL]
 
@@ -968,7 +968,9 @@ F<PERL_ENV_TABLES> is translated once when Perl starts up; any changes
 you make while Perl is running do not affect the behavior of C<%ENV>.
 If F<PERL_ENV_TABLES> is not defined, then Perl defaults to consulting
 first the logical name tables specified by F<LNM$FILE_DEV>, and then
-the CRTL C<environ> array.
+the CRTL C<environ> array.  This default order is reversed when the
+logical name F<GNV$UNIX_SHELL> is defined, such as when running under
+GNV bash.
 
 In all operations on %ENV, the key string is treated as if it 
 were entirely uppercase, regardless of the case actually 
@@ -1001,27 +1003,20 @@ logical name to be created, it is defined in supervisor mode.
 (The same is done if an existing logical name was defined in
 executive or kernel mode; an existing user or supervisor mode
 logical name is reset to the new value.)  If the value is an empty
-string, the logical name's translation is defined as a single NUL
-(ASCII 00) character, since a logical name cannot translate to a
+string, the logical name's translation is defined as a single C<NUL>
+(ASCII C<\0>) character, since a logical name cannot translate to a
 zero-length string.  (This restriction does not apply to CLI symbols
 or CRTL C<environ> values; they are set to the empty string.)
-An element of the CRTL C<environ> array can be set only if your
-copy of Perl knows about the CRTL's C<setenv()> function.  (This is
-present only in some versions of the DECCRTL; check C<$Config{d_setenv}>
-to see whether your copy of Perl was built with a CRTL that has this
-function.)
-
-When an element of C<%ENV> is set to C<undef>,
-the element is looked up as if it were being read, and if it is
-found, it is deleted.  (An item "deleted" from the CRTL C<environ>
-array is set to the empty string; this can only be done if your
-copy of Perl knows about the CRTL C<setenv()> function.)  Using
-C<delete> to remove an element from C<%ENV> has a similar effect,
-but after the element is deleted, another attempt is made to
-look up the element, so an inner-mode logical name or a name in
-another location will replace the logical name just deleted.
-In either case, only the first value found searching PERL_ENV_TABLES
-is altered.  It is not possible at present to define a search list
+
+When an element of C<%ENV> is set to C<undef>, the element is looked
+up as if it were being read, and if it is found, it is deleted.  (An
+item "deleted" from the CRTL C<environ> array is set to the empty
+string.)  Using C<delete> to remove an element from C<%ENV> has a
+similar effect, but after the element is deleted, another attempt is
+made to look up the element, so an inner-mode logical name or a name
+in another location will replace the logical name just deleted. In
+either case, only the first value found searching PERL_ENV_TABLES is
+altered.  It is not possible at present to define a search list
 logical name via %ENV.
 
 The element C<$ENV{DEFAULT}> is special: when read, it returns
@@ -1064,7 +1059,7 @@ You do need to be careful with the logical names representing
 process-permanent files, such as C<SYS$INPUT> and C<SYS$OUTPUT>.
 The translations for these logical names are prepended with a
 two-byte binary value (0x1B 0x00) that needs to be stripped off
-if you wantto use it. (In previous versions of Perl it wasn't
+if you want to use it. (In previous versions of Perl it wasn't
 possible to get the values of these logical names, as the null
 byte acted as an end-of-string marker)