Welcome to Linux Knowledge Base and Tutorial
"The place where you learn linux"

 Create an AccountHome | Submit News | Your Account  

Tutorial Menu
Linux Tutorial Home
Table of Contents

· Introduction to Operating Systems
· Linux Basics
· Working with the System
· Shells and Utilities
· Editing Files
· Basic Administration
· The Operating System
· The X Windowing System
· The Computer Itself
· Networking
· System Monitoring
· Solving Problems
· Security
· Installing and Upgrading
· Linux and Windows

Man Pages
Linux Topics
Test Your Knowledge

Site Menu
Site Map
Copyright Info
Terms of Use
Privacy Info
Masthead / Impressum
Your Account

Private Messages

News Archive
Submit News
User Articles
Web Links


The Web

Who's Online
There are currently, 61 guest(s) and 0 member(s) that are online.

You are an Anonymous user. You can register for free by clicking here




       This document describes differences between the 5.8.0
       release and the 5.8.1 release.

       If you are upgrading from an earlier release like 5.6.1,
       read first the perl58delta, which describes differences
       between 5.6.0 and 5.8.0.

Incompatible Changes

       Hash Randomisation

       Mainly due to security reasons, the "random ordering" of
       hashes has been made even more random.  Previously while
       the order of hash elements from keys(), values(), and
       each() was essentially random, it was still repeatable.
       Now, however, the order varies between different runs of

       Perl has never guaranteed any ordering of the hash keys,
       and the ordering has already changed several times during
       the lifetime of Perl 5.  Also, the ordering of hash keys
       has always been, and continues to be, affected by the
       insertion order.

       The added randomness may affect applications.

       One possible scenario is when output of an application has
       included hash data.  For example, if you have used the
       Data::Dumper module to dump data into different files, and
       then compared the files to see whether the data has
       changed, now you will have false positives since the order
       in which hashes are dumped will vary.  In general the cure
       is to sort the keys (or the values); in particular for
       Data::Dumper to use the "Sortkeys" option.  If some par­
       ticular order is really important, use tied hashes: for
       example the Tie::IxHash module which by default preserves
       the order in which the hash elements were added.

       More subtle problem is reliance on the order of "global
       destruction".  That is what happens at the end of execu­
       tion: Perl destroys all data structures, including user
       data.  If your destructors (the DESTROY subroutines) have
       assumed any particular ordering to the global destruction,
       there might be problems ahead.  For example, in a destruc­
       tor of one object you cannot assume that objects of any
       other class are still available, unless you hold a refer­
       ence to them.  If the environment variable
       PERL_DESTRUCT_LEVEL is set to a non-zero value, or if Perl
       is exiting a spawned thread, it will also destruct the
       ordinary references and the symbol tables that are no
       longer in use.  You can't call a class method or an ordi­
       nary function on a class that has been collected that way.

       UTF-8 On Filehandles No Longer Activated By Locale

       In Perl 5.8.0 all filehandles, including the standard
       filehandles, were implicitly set to be in Unicode UTF-8 if
       the locale settings indicated the use of UTF-8.  This fea­
       ture caused too many problems, so the feature was turned
       off and redesigned: see "Core Enhancements".

       Single-number v-strings are no longer v-strings before

       The version strings or v-strings (see "Version Strings" in
       perldata) feature introduced in Perl 5.6.0 has been a
       source of some confusion-- especially when the user did
       not want to use it, but Perl thought it knew better.
       Especially troublesome has been the feature that before a
       "=>" a version string (a "v" followed by digits) has been
       interpreted as a v-string instead of a string literal.  In
       other words:

               %h = ( v65 => 42 );

       has meant since Perl 5.6.0

               %h = ( 'A' => 42 );

       (at least in platforms of ASCII progeny)  Perl 5.8.1
       restores the more natural interpretation

               %h = ( 'v65' => 42 );

       The multi-number v-strings like v65.66 and 65.66.67 still
       continue to be v-strings in Perl 5.8.

       (Win32) The -C Switch Has Been Repurposed

       The -C switch has changed in an incompatible way.  The old
       semantics of this switch only made sense in Win32 and only
       in the "use utf8" universe in 5.6.x releases, and do not
       make sense for the Unicode implementation in 5.8.0.  Since
       this switch could not have been used by anyone, it has
       been repurposed.  The behavior that this switch enabled in
       5.6.x releases may be supported in a transparent, data-
       dependent fashion in a future release.

       For the new life of this switch, see "UTF-8 no longer
       default under UTF-8 locales", and "-C" in perlrun.

       (Win32) The /d Switch Of cmd.exe

       Perl 5.8.1 uses the /d switch when running the cmd.exe
       including the standard filehandles, if the user's locale
       settings indicated use of UTF-8.

       For example, if you had "en_US.UTF-8" as your locale, your
       STDIN and STDOUT were automatically "UTF-8", in other
       words an implicit binmode(..., ":utf8") was made.  This
       meant that trying to print, say, chr(0xff), ended up
       printing the bytes 0xc3 0xbf.  Hardly what you had in mind
       unless you were aware of this feature of Perl 5.8.0.  The
       problem is that the vast majority of people weren't: for
       example in RedHat releases 8 and 9 the default locale set­
       ting is UTF-8, so all RedHat users got UTF-8 filehandles,
       whether they wanted it or not.  The pain was intensified
       by the Unicode implementation of Perl 5.8.0 (still) having
       nasty bugs, especially related to the use of s/// and
       tr///.  (Bugs that have been fixed in 5.8.1)

       Therefore a decision was made to backtrack the feature and
       change it from implicit silent default to explicit con­
       scious option.  The new Perl command line option "-C" and
       its counterpart environment variable PERL_UNICODE can now
       be used to control how Perl and Unicode interact at inter­
       faces like I/O and for example the command line arguments.
       See perlrun for more information.

       You can also now use safe signals with POSIX::SigAction.
       See "POSIX::SigAction" in POSIX.

       Unsafe signals again available

       In Perl 5.8.0 the so-called "safe signals" were intro­
       duced.  This means that Perl no longer handles signals
       immediately but instead "between opcodes", when it is safe
       to do so.  The earlier immediate handling easily could
       corrupt the internal state of Perl, resulting in mysteri­
       ous crashes.

       However, the new safer model has its problems too.
       Because now an opcode, a basic unit of Perl execution, is
       never interrupted but instead let to run to completion,
       certain operations that can take a long time now really do
       take a long time.  For example, certain network operations
       have their own blocking and timeout mechanisms, and being
       able to interrupt them immediately would be nice.

       Therefore perl 5.8.1 introduces a "backdoor" to restore
       the pre-5.8.0 (pre-5.7.3, really) signal behaviour.  Just
       set the environment variable PERL_SIGNALS to "unsafe", and
       the old immediate (and unsafe) signal handling behaviour

       Tied Arrays with Negative Array Indices
       The syntaxes

               local ${$x}
               local @{$x}
               local %{$x}

       now do localise variables, given that the $x is a valid
       variable name.

       Unicode Character Database 4.0.0

       The copy of the Unicode Character Database included in
       Perl 5.8 has been updated to 4.0.0 from 3.2.0.  This means
       for example that the Unicode character properties are as
       in Unicode 4.0.0.

       Deprecation Warnings

       There is one new feature deprecation.  Perl 5.8.0 forgot
       to add some deprecation warnings, these warnings have now
       been added.  Finally, a reminder of an impending feature

       (Reminder) Pseudo-hashes are deprecated (really)

       Pseudo-hashes were deprecated in Perl 5.8.0 and will be
       removed in Perl 5.10.0, see perl58delta for details.  Each
       attempt to access pseudo-hashes will trigger the warning
       "Pseudo-hashes are deprecated".  If you really want to
       continue using pseudo-hashes but not to see the depreca­
       tion warnings, use:

           no warnings 'deprecated';

       Or you can continue to use the fields pragma, but please
       don't expect the data structures to be pseudohashes any

       (Reminder) 5.005-style threads are deprecated (really)

       5.005-style threads (activated by "use Thread;") were dep­
       recated in Perl 5.8.0 and will be removed after Perl 5.8,
       see perl58delta for details.  Each 5.005-style thread cre­
       ation will trigger the warning "5.005 threads are depre­
       cated".  If you really want to continue using the 5.005
       threads but not to see the deprecation warnings, use:

           no warnings 'deprecated';

       (Reminder) The $* variable is deprecated (really)

       The $* variable controlling multi-line matching has been
       was not planned, it fell naturally out of PerlIO changes,
       and is to be considered an accidental feature.

       PerlIO::get_layers(FH) returns the names of the PerlIO
       layers active on a filehandle.

       PerlIO::via layers can now have an optional UTF8 method to
       indicate whether the layer wants to "auto-:utf8" the

       utf8::is_utf8() has been added as a quick way to test
       whether a scalar is encoded internally in UTF-8 (Unicode).

Modules and Pragmata

       Updated Modules And Pragmata


       B::Bytecode - in much better shape than it used to be.
       Still far from perfect, but maybe worth a try.



       Benchmark - an optional feature, ":hireswallclock", now
       allows for high resolution wall clock times (uses

       ByteLoader - see B::Bytecode.

       bytes - now has bytes::substr.


       charnames - one can now have custom character name

       CPAN - there is now a simple command line frontend to the
       CPAN.pm module called cpan.

       Data::Dumper - a new option, Pair, allows choosing the
       separator between hash keys and values.




       Encode - significant updates on the encoding pragma func­
       tionality (tr/// and the DATA filehandle, formats).  The




       Pod::Perldoc - complete rewrite.  As a side-effect, no
       more refuses to startup when run by root.

       Scalar::Util - new utilities: refaddr, isvstring,
       looks_like_number, set_prototype.

       Storable - can now store code references (via B::Deparse,
       so not foolproof).


       Test::Harness - now much more picky about extra or missing
       output from test scripts.




       Time::HiRes - use of nanosleep(), if available, allows
       mixing subsecond sleeps with alarms.

       threads - several fixes, for example for join() problems
       and memory leaks.  In some platforms (like Linux) that use
       glibc the minimum memory footprint of one ithread has been
       reduced by several hundred kilobytes.

       threads::shared - many memory leaks have been fixed.




       Win32::GetOSVersion - now returns extra information

Utility Changes

       The "h2xs" utility now produces a more modern layout:
       Foo-Bar/lib/Foo/Bar.pm instead of Foo/Bar/Bar.pm.  Also,
       the boilerplate test is now called t/Foo-Bar.t instead of

       The Perl debugger (lib/perl5db.pl) has now been exten­

       perl58delta has been added: it is the perldelta of 5.8.0,
       detailing the differences between 5.6.0 and 5.8.0.

       perlartistic has been added: it is the Artistic License in
       pod format, making it easier for modules to refer to it.

       perlcheat has been added: it is a Perl cheat sheet.

       perlgpl has been added: it is the GNU General Public
       License in pod format, making it easier for modules to
       refer to it.

       perlmacosx has been added to tell about the installation
       and use of Perl in Mac OS X.

       perlos400 has been added to tell about the installation
       and use of Perl in OS/400 PASE.

       perlreref has been added: it is a regular expressions
       quick reference.

Installation and Configuration Improvements

       The UNIX standard Perl location, /usr/bin/perl, is no
       longer overwritten by default if it exists.  This change
       was very prudent because so many UNIX vendors already pro­
       vide a /usr/bin/perl, but simultaneously many system util­
       ities may depend on that exact version of Perl, so better
       not to overwrite it.

       One can now specify installation directories for site and
       vendor man and HTML pages, and site and vendor scripts.
       See INSTALL.

       One can now specify a destination directory for Perl
       installation by specifying the DESTDIR variable for "make
       install".  (This feature is slightly different from the
       previous "Configure -Dinstallprefix=...".)  See INSTALL.

       gcc versions 3.x introduced a new warning that caused a
       lot of noise during Perl compilation: "gcc -Ialready­
       knowndirectory (warning: changing search order)".  This
       warning has now been avoided by Configure weeding out such
       directories before the compilation.

       One can now build subsets of Perl core modules by using
       the Configure flags "-Dnoextensions=..." and "-Donlyexten­
       sions=...", see INSTALL.

       Platform-specific enhancements

       In Cygwin Perl can now be built with threads ("Configure
       are more standard.  In other words, the default installa­
       tion no longer breaks the Apple-provided Perl.  On the
       other hand, with "Configure -Dprefix=/usr" you can now
       really replace the Apple-supplied Perl (please be care­

       Mac OS X now builds Perl statically by default.  This
       change was done mainly for faster startup times.  The
       Apple-provided Perl is still dynamically linked and
       shared, and you can enable the sharedness for your own
       Perl builds by "Configure -Duseshrplib".

       Perl has been ported to IBM's OS/400 PASE environment.
       The best way to build a Perl for PASE is to use an AIX
       host as a cross-compilation environment.  See

       Yet another cross-compilation option has been added: now
       Perl builds on OpenZaurus, an Linux distribution based on
       Mandrake + Embedix for the Sharp Zaurus PDA.  See the
       Cross/README file.

       Tru64 when using gcc 3 drops the optimisation for toke.c
       to "-O2" because of gigantic memory use with the default

       Tru64 can now build Perl with the newer Berkeley DBs.

       Building Perl on WinCE has been much enhanced, see
       README.ce and README.perlce.

Selected Bug Fixes

       Closures, eval and lexicals

       There have been many fixes in the area of anonymous subs,
       lexicals and closures.  Although this means that Perl is
       now more "correct", it is possible that some existing code
       will break that happens to rely on the faulty behaviour.
       In practice this is unlikely unless your code contains a
       very complex nesting of anonymous subs, evals and lexi­

       Generic fixes

       binmode(SOCKET, ":utf8") only worked on the input side,
       not on the output side of the socket.  Now it works both

       For threaded Perls certain system database functions like
       getpwent() and getgrent() now grow their result buffer
       dynamically, instead of failing.  This means that at sites
       with lots of users and groups the functions no longer fail
       FETCH etc may now safely access tied values (ie resulting
       in a recursive call to FETCH etc).

       At startup Perl blocks the SIGFPE signal away since there
       isn't much Perl can do about it.  Previously this blocking
       was in effect also for programs executed from within Perl.
       Now Perl restores the original SIGFPE handling routine,
       whatever it was, before running external programs.

       Linenumbers in Perl scripts may now be greater than 65536,
       or 2**16.  (Perl scripts have always been able to be
       larger than that, it's just that the linenumber for
       reported errors and warnings have "wrapped around".)
       While scripts that large usually indicate a need to
       rethink your code a bit, such Perl scripts do exist, for
       example as results from generated code.  Now linenumbers
       can go all the way to 4294967296, or 2**32.

       Module and pragma specific fixes

           If a filehandle has been marked as to have an encod­
           ing, unmappable characters are detected already during
           input, not later (when the corrupted data is being

           Reading from non-string scalars (like the special
           variables, see perlvar) now works.

           Earlier versions of the strict pragma did not check
           the parameters implicitly passed to its "import" (use)
           and "unimport" (no) routine.  This caused the false
           idiom such as:

                   use strict qw(@ISA);
                   @ISA = qw(Foo);

           This however (probably) raised the false expectation
           that the strict refs, vars and subs were being
           enforced (and that @ISA was somehow "declared").  But
           the strict refs, vars, and subs are not enforced when
           using this false idiom.

           Starting from Perl 5.8.1, the above will cause an
           error to be raised.  This may cause programs which
           used to execute seemingly correctly without warnings
           and errors to fail when run under 5.8.1.  This happens


       ·   Setting $0 works again (with certain limitations that
           Perl cannot do much about: see "$0" in perlvar)


       ·   Setting $0 now works.


       ·   Configuration now tests for the presence of "poll()",
           and IO::Poll now uses the vendor-supplied function if

       ·   A rare access violation at Perl start-up could occur
           if the Perl image was installed with privileges or if
           there was an identifier with the subsystem attribute
           set in the process's rightslist.  Either of these cir­
           cumstances triggered tainting code that contained a
           pointer bug.  The faulty pointer arithmetic has been

       ·   The length limit on values (not keys) in the %ENV hash
           has been raised from 255 bytes to 32640 bytes (except
           when the PERL_ENV_TABLES setting overrides the default
           use of logical names for %ENV).  If it is necessary to
           access these long values from outside Perl, be aware
           that they are implemented using search list logical
           names that store the value in pieces, each 255-byte
           piece (up to 128 of them) being an element in the
           search list. When doing a lookup in %ENV from within
           Perl, the elements are combined into a single value.
           The existing VMS-specific ability to access individual
           elements of a search list logical name via the
           $ENV{'foo;N'} syntax (where N is the search list
           index) is unimpaired.

       ·   The piping implementation now uses local rather than
           global DCL symbols for inter-process communication.

       ·   File::Find could become confused when navigating to a
           relative directory whose name collided with a logical
           name.  This problem has been corrected by adding
           directory syntax to relative path names, thus prevent­
           ing logical name translation.


       ·   A memory leak in the fork() emulation has been fixed.

       ·   The four-argument form of select() did not preserve $!
           (errno) properly when there were errors in the under­
           lying call.  This is now fixed.

       ·   The "CR CR LF" problem of has been fixed, binmode(FH,
           ":crlf") is now effectively a no-op.

New or Changed Diagnostics

       All the warnings related to pack() and unpack() were made
       more informative and consistent.

       Changed "A thread exited while %d threads were running"

       The old version

           A thread exited while %d other threads were still running

       was misleading because the "other" included also the
       thread giving the warning.

       Removed "Attempt to clear a restricted hash"

       It is not illegal to clear a restricted hash, so the warn­
       ing was removed.

       New "Illegal declaration of anonymous subroutine"

       You must specify the block of code for "sub".

       Changed "Invalid range "%s" in transliteration operator"

       The old version

           Invalid [] range "%s" in transliteration operator

       was simply wrong because there are no "[] ranges" in

       New "Missing control char name in \c"


       New "Newline in left-justified string for %s"

       The padding spaces would appear after the newline, which
       is probably not what you had in mind.

       New "Possible precedence problem on bitwise %c operator"

       If you think this

       You cannot read() (or sysread()) from a closed or unopened

       New "5.005 threads are deprecated"

       This warning should have been already in 5.8.0, since they

       New "Tied variable freed while still in use"

       Something pulled the plug on a live free variable, Perl
       plays safe by bailing out.

       New "To%s: illegal mapping '%s'"

       An illegal user-defined Unicode casemapping was specified.

       New "Use of freed value in iteration (perhaps you modified
       the iterated array within the loop?)"

       Something modified the values being iterated over.  This
       is not good.

Changed Internals

       These news matter to you only if you either write XS code
       or like to know about or hack Perl internals (using
       Devel::Peek or any of the "B::" modules counts), or like
       to run Perl with the "-D" option.

       The embedding examples of perlembed have been reviewed to
       be uptodate and consistent: for example, the correct use
       of PERL_SYS_INIT3() and PERL_SYS_TERM().

       Extensive reworking of the pad code (the code responsible
       for lexical variables) has been conducted by Dave

       Extensive work on the v-strings by John Peacock.

       UTF-8 length and position cache: to speed up the handling
       of Unicode (UTF-8) scalars, a cache was introduced.
       Potential problems if an extension bypasses the official
       APIs and directly modifies the PV of an SV: the UTF-8
       cache does not get cleared as it should.

       APIs obsoleted in Perl 5.8.0, like sv_2pv, sv_catpvn,
       sv_catsv, sv_setsv, are again available.

       Certain Perl core C APIs like cxinc and regatom are no
       longer available.  This is intentional.  They never should
       have been available with the shorter names, and if you
       Perl_save_bool() has been added.

       Regexp objects (those created with "qr") now have S-magic
       rather than R-magic.  This fixed regexps of the form
       /...(??{...;$x})/ to no longer ignore changes made to $x.
       The S-magic avoids dropping the caching optimization and
       making (??{...}) constructs obscenely slow (and conse­
       quently useless).  See also "Magic Variables" in perlguts.
       Regexp::Copy was affected by this change.

       The Perl internal debugging macros DEBUG() and DEB() have
       been renamed to PERL_DEBUG() and PERL_DEB() to avoid
       namespace conflicts.

       "-DL" removed (the leaktest had been broken and unsup­
       ported for years, use alternative debugging mallocs or
       tools like valgrind and Purify).

       Verbose modifier "v" added for "-DXv" and "-Dsv", see

New Tests

       In Perl 5.8.0 there were about 69000 separate tests in
       about 700 test files, in Perl 5.8.1 there are about 77000
       separate tests in about 780 test files.  The exact numbers
       depend on the Perl configuration and on the operating sys­
       tem platform.

Known Problems

       The hash randomisation mentioned in "Incompatible Changes"
       is definitely problematic: it will wake dormant bugs and
       shake out bad assumptions.

       If you want to use mod_perl 2.x with Perl 5.8.1, you will
       need mod_perl-1.99_10 or higher.  Earlier versions of
       mod_perl 2.x do not work with the randomised hashes.
       (mod_perl 1.x works fine.)  You will also need
       Apache::Test 1.04 or higher.

       Many of the rarer platforms that worked 100% or pretty
       close to it with perl 5.8.0 have been left a little bit
       untended since their maintainers have been otherwise busy
       lately, and therefore there will be more failures on those
       platforms.  Such platforms include Mac OS Classic, IBM
       z/OS (and other EBCDIC platforms), and NetWare.  The most
       common Perl platforms (Unix and Unix-like, Microsoft plat­
       forms, and VMS) have large enough testing and expert popu­
       lation that they are doing well.

       tied hashes in scalar context

       Tied hashes do not currently return anything useful in
       The subtest 2 of lib/Net/Ping/t/510_ping_udp.t might fail
       if you have an unusual networking setup.  The test is try­
       ing to send a UDP ping to the IP address


       The C-generating compiler backend B::C (the frontend being
       "perlcc -c") is even more broken than it used to be
       because of the extenstive lexical variable changes.  (The
       good news is that B::Bytecode and ByteLoader are better
       than they used to be.)

Platform Specific Problems

       EBCDIC Platforms

       IBM z/OS and other EBCDIC platforms continue to be prob­
       lematic regarding Unicode support.  Many Unicode tests are
       skipped when they really should be fixed.

       Cygwin 1.5 sysio.t

       The one test

         op/sysio.t                                39    1   2.56%  39

       is failing in 1.5.3s for some yet unknown reason.

       Perl 5.8.1 does build and work well with Cygwin 1.3: with
       (uname -a) "CYGWIN_NT-5.0 ... 1.3.22(0.78/3/2) 2003-03-18
       09:20 i686 ..."  a 100% "make test"  was achieved with
       "Configure -des -Duseithreads".

       FreeBSD: malloc dilemma

       The choice of malloc (the C-level memory management inter­
       face) when building Perl is problematic in FreeBSD.

       Using FreeBSD's system malloc for Perl was found to be
       very slow: in some cases that was 200 times slower than
       using the Perl malloc.  One such case is file input: for

           # slurping the whole compressed Perl source code into $a
           if (open F,"perl-5.8.1.tar.gz") { local $/; $a=<F> }

       is about 200-250 times slower with the system malloc than
       with the Perl malloc.

       One could use Perl's malloc (Configure -Dusemymalloc), but
       that was found to cause random core dumps in FreeBSD with
       multithreaded programs.  No such problems were found in
       other multithreaded platforms, however.
           cc: "/usr/include/sys/socket.h", line 505: warning 562: Redeclaration of "sendfile" with a different storage class specifier: "sendfile" will have internal linkage.

       The warnings show up both during the build of Perl and
       during certain lib/ExtUtils tests that invoke the C com­
       piler.  The warning, however, is not serious and can be

       IRIX: t/uni/tr_7jis.t falsely failing

       The test t/uni/tr_7jis.t is known to report failure under
       'make test' or the test harness with certain releases of
       IRIX (at least IRIX 6.5 and MIPSpro Compilers Version, but if run manually the test fully passes.

       Mac OS X: no usemymalloc

       The Perl malloc ("-Dusemymalloc") does not work at all in
       Mac OS X.  This is not that serious, though, since the
       native malloc works just fine.

       Tru64: No threaded builds with GNU cc (gcc)

       In the latest Tru64 releases (e.g. v5.1B) the gcc (3.3)
       cannot be used to compile a threaded Perl (-Duseithreads)
       because the system <pthread.h> file doesn't know about

       Win32: sysopen, sysread, syswrite

       As of the 5.8.0 release, sysopen()/sysread()/syswrite() do
       not behave like they used to in 5.6.1 and earlier with
       respect to "text" mode.  These built-ins now always oper­
       ate in "binary" mode (even if sysopen() was passed the
       O_TEXT flag, or if binmode() was used on the file handle).
       Note that this issue should only make a difference for
       disk files, as sockets and pipes have always been in
       "binary" mode in the Windows port.  As this behavior is
       currently considered a bug, compatible behavior may be re-
       introduced in a future release.  Until then, the use of
       sysopen(), sysread() and syswrite() is not supported for
       "text" mode operations.

Future Directions

       The following things might happen in future.  The first
       publicly available releases having these characteristics
       will be the developer releases Perl 5.9.x, culminating in
       the Perl 5.10.0 release.  These are our best guesses at
       the moment: we reserve the right to rethink.

       ·   PerlIO will become The Default.  Currently (in Perl
           5.8.x) the stdio library is still used if Perl thinks
           it can use certain tricks to make stdio go really

              defined $a ? $a : $b


              $c //= $d;

           instead of

              $c = $d unless defined $c;

           The operator will have the same precedence and asso­
           ciativity as "||".  A source code patch against the
           Perl 5.8.1 sources will be available in CPAN as

       ·   "unpack()" will default to unpacking the $_.

       ·   Various Copy-On-Write techniques will be investigated
           in hopes of speeding up Perl.

       ·   CPANPLUS, Inline, and Module::Build will become core

       ·   The ability to write true lexically scoped pragmas
           will be introduced.

       ·   Work will continue on the bytecompiler and byteloader.

       ·   The v-strings as such may be removed.  What will keep
           working is the v-less form (1.2.3) when used with
           "use", "require", and $VERSION.  The v-ful version
           (v1.2.3) may become obsolete.  The equivalence of
           strings and v-strings (e.g. that currently 5.8.0 is
           equal to "\5\8\0") will go away, and instead the 1.2.3
           will be a "version object", as will be the $^V.  There
           is no deprecation warning for v-strings, though: it is
           quite hard to detect when v-strings are being used
           safely, and when they are not.  Therefore to avoid
           false warnings, or miss needed ones it was decided
           that deprecation warnings will not be be given.

       ·   5.005 Threads Will Be Removed

       ·   The $* Variable Will Be Removed (it was deprecated a
           long time ago)

       ·   Pseudohashes Will Be Removed

Reporting Bugs

       If you find what you think is a bug, you might check the
       articles recently posted to the comp.lang.perl.misc news­

       The INSTALL file for how to build Perl.

       The README file for general stuff.

       The Artistic and Copying files for copyright information.

perl v5.8.1                 2003-09-02               PERLDELTA(1)

An undefined database error occurred. SELECT distinct pages.pagepath,pages.pageid FROM pages, page2command WHERE pages.pageid = page2command.pageid AND commandid =


More information about the site can be found in the FAQ



Security Code
Security Code
Type Security Code

Don't have an account yet? You can create one. As a registered user you have some advantages like theme manager, comments configuration and post comments with your name.

Help if you can!

Amazon Wish List

Did You Know?
The Linux Tutorial can use your help.


Tell a Friend About Us

Bookmark and Share

Web site powered by PHP-Nuke

Is this information useful? At the very least you can help by spreading the word to your favorite newsgroups, mailing lists and forums.
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters. Articles are the property of their respective owners. Unless otherwise stated in the body of the article, article content (C) 1994-2013 by James Mohr. All rights reserved. The stylized page/paper, as well as the terms "The Linux Tutorial", "The Linux Server Tutorial", "The Linux Knowledge Base and Tutorial" and "The place where you learn Linux" are service marks of James Mohr. All rights reserved.
The Linux Knowledge Base and Tutorial may contain links to sites on the Internet, which are owned and operated by third parties. The Linux Tutorial is not responsible for the content of any such third-party site. By viewing/utilizing this web site, you have agreed to our disclaimer, terms of use and privacy policy. Use of automated download software ("harvesters") such as wget, httrack, etc. causes the site to quickly exceed its bandwidth limitation and are therefore expressly prohibited. For more details on this, take a look here

PHP-Nuke Copyright © 2004 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Page Generation: 0.11 Seconds