45b2f8ede286bcaf7c36b6e96f41d3ba733b8a94
[p5sagit/p5-mst-13.2.git] / pod / perldelta.pod
1 =head1 NAME
2
3 perldelta - what's new for perl v5.8.0
4
5 =head1 DESCRIPTION
6
7 This document describes differences between the 5.6 release and this one.
8
9 =head1 Core Enhancements
10
11 =head1 Modules and Pragmata
12
13 =head1 Utility Changes
14
15 =head1 Improved Documentation
16
17 =head1 Performance enhancements
18
19 =head1 Installation and Configuration Improvements
20
21 =head2 gcc automatically tried if 'cc' does not seem to be working
22
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.
27
28 =head1 Platform specific changes
29
30 =head2 printf() and sprintf() give two-digit exponent where possible
31
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
43 needed.
44
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:
48
49     print "native: ", 1234567e89, sprintf("; standardized: %e\n", 1234567e89)
50
51 outputs
52
53     native: 1.234567e+95; standardized: 1.234567e+95
54
55 on most platforms, and
56
57     native: 1.234567e+095; standardized: 1.234567e+95
58
59 on the remainder.
60
61 =head1 Significant bug fixes
62
63 =head1 New or Changed Diagnostics
64
65 =over 4
66
67 =item (perhaps you forgot to load "%s"?)
68
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.
72
73 =item Ambiguous range in transliteration operator
74
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.)
79
80 =back
81
82 =head1 New tests
83
84 =head1 Incompatible Changes
85
86 =head1 Known Problems
87
88 =head1 Obsolete Diagnostics
89
90 =head1 Reporting Bugs
91
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
95 Home Page.
96
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.
102
103 =head1 SEE ALSO
104
105 The F<Changes> file for exhaustive details on what changed.
106
107 The F<INSTALL> file for how to build Perl.
108
109 The F<README> file for general stuff.
110
111 The F<Artistic> and F<Copying> files for copyright information.
112
113 =head1 HISTORY
114
115 Written by Gurusamy Sarathy <F<gsar@activestate.com>>, with many
116 contributions from The Perl Porters.
117
118 Send omissions or corrections to <F<perlbug@perl.com>>.
119
120 =cut