Front page | perl.perl5.porters |
Postings from April 2001
what happens next?
From: Jarkko Hietaniemi
April 9, 2001 19:56
what happens next?
Message ID: 20010409215556.B9907@chaos.wustl.edu
"What happens next?" asked Twoflower.
Hrun screwed a finger in his ear and inspected it absently.
"Oh,", he said, "I expect in a minute the door will be
flung back and I'll be dragged off to some sort of temple
arena where I'll fight maybe a couple of giant spiders
and an eight-foot slave from the jungles of Klatch and then
I'll rescue some kind of a princess from the altar and then
I'll kill off a few guards or whatever and then this girl
will show me the secret passage out of the place and we'll
liberate a couple of horses and escape with the treasure."
Hrun leaned his head back on his hands and looked at the
ceiling, whistling tunelessly.
"All that?" said Twoflower.
-- Terry Pratchett,
"The Colour of Magic"
Since 5.7.1 is essentially 5.6.1 with few paper umbrellas, here it is.
Since this is a development release, you need to Configure with -Dusedevel.
The patch from 5.7.0 is close to 14 MB (3 MB gzipped), therefore
the full 5.7.1 tar.gz (29 MB, 7 MB gzipped) is probably advisable.
Available now at
and once the CPAN mirrors update
You should NOT install development releases into production use.
Testing and reporting problems is appreciated, though, since in
hopefully not too distant future the development releases will
turn into Perl 5.8, a maintenance release.
=head1 What's 5.7.1?
The 5.7.1 is the second development release of Perl 5.7;
the first development release was the 5.7.0 in September 2000.
=head1 How's 5.7.1 different from 5.6.1?
Development releases introduce new features, as opposed to
maintenance releases. Perl 5.6.1, released just yesterday,
is a maintenance release.
Maintenance releases contain only bug fixes and non-disruptive
In development releases more extensive changes take place, both externally
and internally. Some of these changes may break backward compatibility,
for example by changing behaviour, by introducing new warnings or errors,
or by breaking binary compatibility.
All the bug fixes that are in 5.6.1 are in 5.7.1-- in fact both the
releases were being maintained simulatenously; a bug fix made at the
other branch was quickly integrated to the other one.
What is not in 5.6.1 but is in 5.7.1 are the more adventurous changes.
=head2 More Extensive Unicode Support
Many basic Unicode fixes did find their way into 5.6.1 but some of
the more involved ones were deemed to be too risky to put into a
maintenance release. These include the following:
Unicode Character Database 3.1 - the latest database of Unicode
characters and their properties. In 5.6.1 we have the UCD 3.0.1.
Regular expressions - in 5.7.1 the handling of Unicode by regular
expressions has been extenstively rewritten and now it seems to work
as described in the Camel 3. This includes both the matching operator
m// and the split function. In 5.6.1 the handling of Unicode in
regular expressions is severely broken.
tr/// - handling of Unicode by the transliteration operator
was severely broken in 5.6.0 and in 5.6.1 it is better,
but only 5.7.1 has all the changes applied.
Character encodings - there is now a new module called Encode
that works with Unicode and PerlIO (of which more in a second)
to provide mapping between character encodings, such as the
ISO-8859-* and the CP*.
I/O is now done by default in most platforms (VMS being the most
notable exception) using Perl's own library called PerlIO, instead of
system's "stdio". This allows much finer control (and independence of
limited and broken stdio implementations) of I/O; as an example of
this better control we now have "I/O disciplines" which are basically
a stack of I/O handlers. This enables things like filehandles that
transparently do translations like uncompression/compression
and character encoding conversions.
=head2 Integer Preservation
Perl now tries internally to use integer values in numeric conversions
and basic arithmetics (+ - * /) if the arguments are integers, and
tries also to keep the results stored internally as integers.
This change leads into often slightly faster and always less lossy
arithmetics. (Previously Perl always preferred floating point numbers
in its math.)
=head2 Many Newly Integrated Modules
In 5.7.0 File::Temp and Storable were introduced as standard modules,
modules included in the standard distribution.
In 5.7.1 many more modules are integrated similarly:
B::Concise, Class::ISA, Digest, Digest::MD5, Filter::Simple,
Filter::Util::Call, Locale::Constants, Locale::Country,
Locale::Currency, Locale::Language, MIME::Base64, MIME::QuotedPrint,
Pod::Text::Overstrike, Switch, and Text::Balanced.
Encode, PerlIO::Scalar, and PerlIO::Via have been created for the
Thanks to the Switch module, Perl has now switch() and case.
=head1 More Information
The changes from 5.7.0 to 5.7.1 are described in L<perl571delta>.
The changes from 5.6.0 to 5.7.0 are described in L<perl570delta>.
$jhi++; # http://www.iki.fi/jhi/
# There is this special biologist word we use for 'stable'.
# It is 'dead'. -- Jack Cohen
what happens next?
by Jarkko Hietaniemi