3 perldelta - what's new for perl v5.8.0
7 This document describes differences between the 5.6 release and this one.
9 =head1 Core Enhancements
11 =head1 Modules and Pragmata
13 =head1 Utility Changes
15 =head1 Improved Documentation
17 =head1 Performance enhancements
19 =head1 Installation and Configuration Improvements
21 =head2 gcc automatically tried if 'cc' does not seem to be working
23 In many platforms the vendor-supplied 'cc' is too stripped-down to
24 build Perl (basically, the 'cc' doesn't do ANSI C). If this seems
25 to be the case and the 'cc' does not seem to be the GNU C compiler
26 'gcc', an automatic attempt is made to find and use 'gcc' instead.
28 =head1 Platform specific changes
30 =head2 printf() and sprintf() give two-digit exponent where possible
32 Perl's printf() and sprintf() use the standard C library sprintf()
33 function to implement the floating point conversions provided by the
34 C<%e>, C<%f> and C<%g> formats (and their upper-case counterparts). C
35 library sprintf() functions vary in the number of exponent digits that
36 they produce in scientific notation when the modulus of the exponent
37 is less than one hundred: most platforms give two digits (for example,
38 C<1.234e-45>) while others, notably Microsoft's libraries for Windows,
39 give three (as in C<1.234e-045>). Previously, Perl's functions
40 produced results identical to the platform's underlying library
41 function, resulting in script portability problems. Now, on all
42 platforms, only two exponent digits are delivered unless more are
45 Note that this change applies only to explicit conversions made by
46 printf() and sprintf(); implicit conversions still show the same
47 behavior as the underlying library function:
49 print "native: ", 1234567e89, sprintf("; standardized: %e\n", 1234567e89)
53 native: 1.234567e+95; standardized: 1.234567e+95
55 on most platforms, and
57 native: 1.234567e+095; standardized: 1.234567e+95
61 =head1 Significant bug fixes
63 =head1 New or Changed Diagnostics
67 =item (perhaps you forgot to load "%s"?)
69 (F) This is an educated guess made in conjunction with the message
70 "Can't locate object method \"%s\" via package \"%s\"". It often means
71 that a method requires a package that has not been loaded.
73 =item Ambiguous range in transliteration operator
75 (F) You wrote something like C<tr/a-z-0//> which doesn't mean anything at
76 all. To include a C<-> character in a transliteration, put it either
77 first or last. (In the past, C<tr/a-z-0//> was synonymous with
78 C<tr/a-y//>, which was probably not what you would have expected.)
84 =head1 Incompatible Changes
88 =head1 Obsolete Diagnostics
92 If you find what you think is a bug, you might check the
93 articles recently posted to the comp.lang.perl.misc newsgroup.
94 There may also be information at http://www.perl.com/perl/, the Perl
97 If you believe you have an unreported bug, please run the B<perlbug>
98 program included with your release. Be sure to trim your bug down
99 to a tiny but sufficient test case. Your bug report, along with the
100 output of C<perl -V>, will be sent off to perlbug@perl.com to be
101 analysed by the Perl porting team.
105 The F<Changes> file for exhaustive details on what changed.
107 The F<INSTALL> file for how to build Perl.
109 The F<README> file for general stuff.
111 The F<Artistic> and F<Copying> files for copyright information.
115 Written by Gurusamy Sarathy <F<gsar@activestate.com>>, with many
116 contributions from The Perl Porters.
118 Send omissions or corrections to <F<perlbug@perl.com>>.