Craig A. Berry wrote:
It's looking like we'll get a release candidate for Perl 5.10.1 in the next week or two. Indications are it will be the best ever Perl on VMS release, but it would be helpful if the so-called perldelta, the changes since the previous release, could be updated for accuracy and completeness. What's in there so far is below. I will see what I can come up with, but people who know things (especially John M.), should give a holler with relevant details.
An update to the pod is in order for the PERL_VMS_POSIX_EXIT logical name. That should help you with what to put in the delta file.
I forgot to indicate in the file that the DECC$FILENAME_UNIX_REPORT feature also activates the PERL_VMS_POSIX_EXIT mode.
The support for UNIX filenames when using the DECC$FILENAME_UNIX_REPORT and DECC$EFS_CHARSET has been greatly improved. Only a few of the dual life modules do not have support.
-John wb8...@qsl.net Personal Opinion Only
--- /rsync_root/perl/pod/perlvms.pod Mon Apr 20 04:03:09 2009 +++ pod/perlvms.pod Wed Jul 15 21:13:08 2009 @@ -1167,16 +1167,16 @@ SS$_NORMAL, and setting C<$?> to a non-zero value results in the generic failure status SS$_ABORT. See also L<perlport/exit>. -With the future POSIX_EXIT mode set, setting C<$?> will cause the -new value to also be encoded into C<$^E> so that the either the -original parent or child exit status values of 0 to 255 -can be automatically recovered by C programs expecting _POSIX_EXIT -behavior. If both a parent and a child exit value are non-zero, then it -will be assumed that this is actually a VMS native status value to -be passed through. The special value of 0xFFFF is almost a NOOP as -it will cause the current native VMS status in the C library to -become the current native Perl VMS status, and is handled this way -as consequence of it known to not be a valid native VMS status value. +With the C<PERL_VMS_POSIX_EXIT> logical name defined as "ENABLE", +setting C<$?> will cause the new value to also be encoded into C<$^E> +so that the either the original parent or child exit status values o + 0 to 255 can be automatically recovered by C programs expecting +_POSIX_EXIT behavior. If both a parent and a child exit value are +non-zero, then it will be assumed that this is actually a VMS native +status value to be passed through. The special value of 0xFFFF is +almost a NOOP as it will cause the current native VMS status in the +C library to become the current native Perl VMS status, and is handled +this way as a it is known to not be a valid native VMS status value. It is recommend that only values in range of normal UNIX parent or child status numbers, 0 to 255 are used. @@ -1186,10 +1186,15 @@ non-zero values to SS$_ABORT when setting C<$?> in an END block (but zero will still be converted to SS$_NORMAL). -Do not use the pragma C<use vmsish 'status'> with the future -POSIX_EXIT mode, as they are at times requesting conflicting -actions and the consequence of ignoring this advice will be -undefined to allow future improvements in the POSIX exit handling. +Do not use the pragma C<use vmsish 'status'> with C<PERL_VMS_POSIX_EXIT> +enabled, as they are at times requesting conflicting actions and the +consequence of ignoring this advice will be undefined to allow future +improvements in the POSIX exit handling. + +In general, with the <PERL_VMS_POSIX_EXIT> enabled, more detailed information +will be availble in the exit status for DCL scripts or other native VMS tools, +and will give the expected information for Posix programs. It has not been +made the default for backward compatibility. =item $|