[This article was adapted from the Perl 5 manual pages. -JP]
Other articles in this chapter were actually written for the previous
version, Perl 4, but they apply to Perl 5 as well. Perl 5 is
nearly a complete rewrite of Perl 4. Most Perl 4 scripts will work
under Perl 5. Perl 5 has these new benefits (and more):
-
Many usability enhancements
: It is now possible to write much
more readable Perl code (even within regular expressions). Error
messages are more informative; the optional warnings will catch many
of the mistakes a novice might make.
-
Lexical scoping
: Perl variables may now be declared within a
lexical scope, like "auto" variables in C.
-
Arbitrarily nested data structures
: Any scalar value, including
any array element, may now contain a reference to any other variable
or subroutine.
-
Modularity and reusability
: The Perl library is now defined in
terms of modules that can be easily shared among various packages. A
package may choose to import all or a portion of a module's published
interface. Pragmas (that is, compiler directives) are defined and
used by the same mechanism.
-
Object-oriented programming
: A Perl package can function as a
class. Dynamic multiple inheritance and virtual methods are supported
in a straightforward manner and with very little new syntax.
Filehandles may now be treated as objects.
-
Embeddable and extensible
: Perl may now be embedded easily in
your C or C++ application, and can either call or be called by your
routines through a documented interface. The XS preprocessor
is provided to make it easy to glue your C or C++ routines into Perl.
Dynamic loading of modules is supported.
-
POSIX compliant
: A major new module is the POSIX
module, which provides access to all available POSIX routines
and definitions, via object classes where appropriate.
-
Package constructors and destructors
: The new BEGIN and
END blocks provide means to capture control as a package is
being compiled, and after the program exits. They work just like
awk
's BEGIN and END when you use the
-p
or
-n
switches.
-
Multiple simultaneous DBM implementations
: A Perl program
may now access DBM, NDBM, SDBM, GDBM, and
Berkeley DB database files from the same script simultaneously.
-
Regular expression enhancements
: If you thought Perl 4 regular
expressions were rich and full of incredible features, wait until you
see Perl 5!