and is implemented using the new Opcode module. Please read the new
Opcode and Safe documentation.
-=head2 Extended Fcntl Module
-
-The Fcntl module now supports these new constants
-
- F_GETOWN F_SETOWN
- O_ASYNC O_DEFER O_DSYNC O_RSYNC O_SYNC
- O_EXLOCK O_SHLOCK
-
-provided that your operating system supports these constants. The
-constants are for use with the Perl sysopen() and fcntl(). These
-constants are also visible for the basic database modules like the
-SDBM_File. For the exact meaning of these contants and other Fcntl
-constants please refer to the fcntl() documentation of your operating
-system. Unsupported constants will cause run-time errors.
-
=head2 Internal Change: FileHandle Deprecated
Filehandles are now stored internally as type IO::Handle.
=item $^E
-Extended error message under some platforms ($EXTENDED_OS_ERROR
-if you C<use English>).
+Extended error message on some platforms. (Also known as
+$EXTENDED_OS_ERROR if you C<use English>).
=item $^H
As a disincentive to casual use of this advanced feature,
there is no C<use English> long name for this variable.
+=item $^S
+
+The status returned by the last pipe close, back-tick (C<``>) command, or
+system() operator, in the native system format. On UNIX and UNIX-like
+systems, C<$^S> is a synonym for C<$?>. Elsewhere, C<$^S> can be used to
+determine aspects of child status that are system-specific. Check C<$^O>
+before using this variable. (Mnemonic: System-Specific Subprocess Status.
+Also known as $SYSTEM_CHILD_STATUS if you C<use English>.)
+
=back
=head2 New and Changed Built-in Functions
The C<UNIVERSAL> package automatically contains the following methods that
are inherited by all other classes:
-=over 4
+=over
=item isa(CLASS)
=head1 Modules
+=head2 Installation Directories
+
+The I<installperl> script now places the Perl source files for
+extensions in the architecture-specific library directory, which is
+where the shared libraries for extensions have always been. This
+change is intended to allow administrators to keep the Perl 5.004
+library directory unchanged from a previous version, without running
+the risk of binary incompatibility between extensions' Perl source and
+shared libraries.
+
=head2 Fcntl
New constants in the existing Fcntl modules are now supported,
O_ASYNC O_DEFER O_DSYNC O_FSYNC O_SYNC
O_EXLOCK O_SHLOCK
+These constants are intended for use with the Perl operators sysopen()
+and fcntl() and the basic database modules like SDBM_File. For the
+exact meaning of these and other Fcntl constants please refer to your
+operating system's documentation for fcntl() and open().
+
+In addition, the Fcntl module now provides these constants for use
+with the Perl operator flock():
+
+ LOCK_SH LOCK_EX LOCK_NB LOCK_UN
+
+These constants are defined in all environments (because where there is
+no flock() system call, Perl emulates it). However, for historical
+reasons, these constants are not exported unless they are explicitly
+requested with the ":flock" tag (e.g. C<use Fcntl ':flock'>).
+
=head2 Module Information Summary
Brand new modules, arranged by topic rather than strictly
sinh cosh tanh cotanh asinh acosh atanh acotanh
cplx cplxe
+=head2 DB_File
+
+There have been quite a few changes made to DB_File. Here are a few of
+the highlights:
+
+=over
+
+=item *
+
+Fixed a handful of bugs.
+
+=item *
+
+By public demand, added support for the standard hash function exists().
+
+=item *
+
+Made it compatible with Berkeley DB 1.86.
+
+=item *
+
+Made negative subscripts work with RECNO interface.
+
+=item *
+
+Changed the default flags from O_RDWR to O_CREAT|O_RDWR and the default
+mode from 0640 to 0666.
+
+=item *
+
+Made DB_File automatically import the open() constants (O_RDWR,
+O_CREAT etc.) from Fcntl, if available.
+
+=item *
+
+Updated documentation.
+
+=back
+
+Refer to the HISTORY section in DB_File.pm for a complete list of
+changes. Everything after DB_File 1.01 has been added since 5.003.
+
+=head2 Net::Ping
+
+Major rewrite - support added for both udp echo and real icmp pings.
+
=head2 Overridden Built-ins
Many of the Perl built-ins returning lists now have
=head2 xsubpp
+=over
+
=item C<void> XSUBs now default to returning nothing
Due to a documentation/implementation bug in previous versions of
what looks like an assignment to C<ST(0)>, it assumes that the
XSUB's return type is really C<SV *>.
+=back
+
+=head1 C Language API Changes
+
+=over
+
+=item C<gv_fetchmethod> and C<perl_call_sv>
+
+The C<gv_fetchmethod> function finds a method for an object, just like
+in Perl 5.003. The GV it returns may be a method cache entry.
+However, in Perl 5.004, method cache entries are not visible to users;
+therefore, they can no longer be passed directly to C<perl_call_sv>.
+Instead, you should use the C<GvCV> macro on the GV to extract its CV,
+and pass the CV to C<perl_call_sv>.
+
+The most likely symptom of passing the result of C<gv_fetchmethod> to
+C<perl_call_sv> is Perl's producing an "Undefined subroutine called"
+error on the I<second> call to a given method (since there is no cache
+on the first call).
+
+=back
+
=head1 Documentation Changes
Many of the base and library pods were updated. These
new pods are included in section 1:
-=over 4
+=over
=item L<perldelta>
(X) A very fatal error (non-trappable).
(A) An alien error message (not generated by Perl).
-=over 4
+=over
=item "my" variable %s masks earlier declaration in same scope