New Platforms BeOS is now supported. See README.beos. DOS is now supported under the DJGPP tools.
Modules and Pragmata New Modules B Perl compiler and tools. See B.
New and changed syntax $coderef->(PARAMS) A subroutine reference may now be suffixed with an arrow ... This new syntax follows the pattern of $hashref->{FOO} and $aryref->[$foo]: You may now write &$subref
New INIT keyword INIT subs are like BEGIN and END, but they get run just before the perl runtime begins
New qr// operator The qr// operator, which is syntactically similar to the other quote-like operators
New lock keyword The lock keyword is the fundamental synchronization primitive in threaded perl.
New Diagnostics Several new conditions will trigger warnings that were silent before. ... The following new warnings and errors outline these.
About the new versioning system Perl is now developed on two tracks: a maintenance track that makes ... Perl 5.005 is the combined product of the new dual-track development scheme.
New and changed builtin constants __PACKAGE__ The current package name at compile time, or the undefined
New Diagnostics Ambiguous call resolved as CORE::%s(), qualify as such or use & (W) A subroutine you
New and changed builtin variables $^E Extended error message on some platforms. ... Not actually new, but newly documented.
New builtin methods The UNIVERSAL package automatically contains the following methods that are inherited
New Opcode module and revised Safe module A new Opcode module supports the creation, manipulation and ... The revised Safe module has a new API and is implemented using the new Opcode module.
It is the recommended method for new code. ... (Not actually new; just never documented before.)
Relaxed new mandatory warnings introduced in 5.004 Many new warnings that were introduced in 5.004 have ... See "New Diagnostics".
The recommended way to write barewords in the indirect object slot is new Foo:: @args. ... Note that the method new() is called with a first argument of Foo, not Foo:: when you do that.
Some new keywords have been introduced. ... See "New INIT keyword", "New lock keyword", and "New qr// operator".
perldebug Although not new, this has been massively updated. ... perlsec Although not new, this has been massively updated.
Regular Expressions Perl's regular expression engine has been seriously overhauled, and many new constructs ... >RE) \z New operator for precompiled regular expressions See "New qr// operator".
Each new perl version tends to remove some undesirable warnings, while adding new warnings that may catch
The new qsort() is resistant to inconsistent comparison functions, so Perl's sort() will not provoke ... In our testing, the new qsort() required the minimal number of pair-wise compares on average, among all
Support for More Operating Systems Support for the following operating systems is new in Perl 5.004.
Math::Trig This new module provides a simpler interface to parts of Math::Complex for those who need
There is also a new base class for TIEARRAY implementations. See Tie::Array.
Default installation structure has changed The new Configure defaults are designed to allow a smooth
perl_eval_pv A new function handy for eval'ing strings of Perl code inside C code. ... New extensions must use the new hash access functions and macros if they wish to use SV* keys.
C Source Compatibility There have been a large number of changes in the internals to support the new ... New extensions should not refer to perl globals by their unqualified names.
Sends converted HTML to standard output The pod2html utility included with Perl 5.004 is entirely new
Sends converted HTML to standard output The pod2html utility included with Perl 5.004 is entirely new
Compilation option: Binary compatibility with 5.003 There is a new Configure question that asks if you
Licensing Perl has a new Social Contract for contributors. See Porting/Contract.
We suggest, but do not require, that you use the IO::* modules in new code.
perlcc, a new experimental front end for the compiler is available.
Fcntl New constants in the existing Fcntl modules are now supported, provided that your operating system
Modules and Pragmata New Modules B Perl compiler and tools. See B.
The new restrictions when tainting include: No glob() or <*> These operators may spawn the C shell
Pragmata Six new pragmatic modules exist: use autouse MODULE => qw(sub1 sub2 sub3) Defers require
Carp Carp has a new function cluck(). cluck() warns, like carp(), but also adds a stack backtrace to
Three new compilation flags are recognized by malloc.c.
Module information summary Brand new modules, arranged by topic rather than strictly alphabetically: