Change 20516 by [EMAIL PROTECTED] on 2003/08/06 10:47:28
Retract #20472.
Affected files ...
... //depot/maint-5.8/perl/pod/perldata.pod#12 edit
... //depot/maint-5.8/perl/pod/perldelta.pod#64 edit
... //depot/maint-5.8/perl/pod/perldiag.pod#34 edit
... //depot/maint-5.8/perl/pod/perlfunc.pod#33 edit
... //depot/maint-5.8/perl/pod/perlvar.pod#24 edit
Differences ...
==== //depot/maint-5.8/perl/pod/perldata.pod#12 (text) ====
Index: perl/pod/perldata.pod
--- perl/pod/perldata.pod#11~20472~ Mon Aug 4 00:01:58 2003
+++ perl/pod/perldata.pod Wed Aug 6 03:47:28 2003
@@ -339,18 +339,10 @@
=head3 Version Strings
-B<NOTE:> Version strings (v-strings) have been deprecated in Perl
-5.8.1. Version strings will be removed in some future release after
-Perl 5.8.1. The marginal benefits of v-strings were greatly
-outweighed by the potential for Surprise and Confusion.
-
-Even the best case for their use, being used as version numbers for
-Perl itself and modules, was not backwards compatible to Perl versions
-earlier than 5.6.0.
-
-If you are using literal v-strings or the C<$^V> variable for version
-comparison, please use either the old numerical way (5.00801
-for Perl 5.8.1, for example) and the variable C<$[> instead.
+B<Note:> Version Strings (v-strings) have been deprecated. They will
+be removed in some future release after Perl 5.8.1. The marginal
+benefits of v-strings were greatly outweighed by the potential for
+Surprise and Confusion.
A literal of the form C<v1.20.300.4000> is parsed as a string composed
of characters with the specified ordinals. This form, known as
@@ -376,6 +368,8 @@
to separate a hash key from a hash value), instead they are interpreted
as literal strings ('v65'). They were v-strings from Perl 5.6.0 to
Perl 5.8.0, but that caused more confusion and breakage than good.
+Multi-number v-strings like C<v65.66> and C<65.66.67> continue to
+be v-strings always.
=head3 Special Literals
==== //depot/maint-5.8/perl/pod/perldelta.pod#64 (text) ====
Index: perl/pod/perldelta.pod
--- perl/pod/perldelta.pod#63~20496~ Tue Aug 5 03:52:16 2003
+++ perl/pod/perldelta.pod Wed Aug 6 03:47:28 2003
@@ -213,11 +213,6 @@
no warnings 'deprecated';
-Similarly, prefer the old way of using the C<$]> variable and numeric
-comparisons instead of the C<$^V> variable. The C<$^V> and v-strings
-in general never did work for pre-5.6.0 Perls, so they weren't that
-great for version compatibility checks to begin with.
-
=head3 (Reminder) Pseudo-hashes are deprecated (really)
Pseudo-hashes were deprecated in Perl 5.8.0 and will be removed in
@@ -671,7 +666,6 @@
The marginal benefits of v-strings were greatly outweighed by the
potential for Surprise and Confusion.
-See L<perldata/"Version Strings"> for more information.
=head1 Changed Internals
==== //depot/maint-5.8/perl/pod/perldiag.pod#34 (text) ====
Index: perl/pod/perldiag.pod
--- perl/pod/perldiag.pod#33~20515~ Wed Aug 6 03:44:50 2003
+++ perl/pod/perldiag.pod Wed Aug 6 03:47:28 2003
@@ -4431,8 +4431,7 @@
=item v-strings are deprecated (especially those beginning with 'v')
(D deprecated) v-strings are deprecated. Their semantics and use were
-found to be overly confusing and error-prone.
-See L<perldata/"Version Strings"> for more information.
+overly confusing.
=item Warning: something's wrong
==== //depot/maint-5.8/perl/pod/perlfunc.pod#33 (text) ====
Index: perl/pod/perlfunc.pod
--- perl/pod/perlfunc.pod#32~20472~ Mon Aug 4 00:01:58 2003
+++ perl/pod/perlfunc.pod Wed Aug 6 03:47:28 2003
@@ -4016,19 +4016,20 @@
Demands a version of Perl specified by VERSION, or demands some semantics
specified by EXPR or by C<$_> if EXPR is not supplied.
-VERSION will be compared to C<$]>. A fatal error is produced at run
-time if VERSION is greater than the version of the current Perl
-interpreter. Compare with L</use>, which can do a similar check at
-compile time.
-
- require 5.006; # run time version check for Perl 5.6.0
- require 5.006_001; # ditto for 5.6.1
-
-The alternate way of specifying VERSION (introduced in Perl 5.6.0)
-as a literal of the form v5.6.1 should generally be avoided, because
-it leads to misleading error messages under earlier versions of Perl
-which do not support this syntax. The equivalent numeric version
-should be used instead.
+VERSION may be either a numeric argument such as 5.006, which will be
+compared to C<$]>, or a literal of the form v5.6.1, which will be compared
+to C<$^V> (aka $PERL_VERSION). A fatal error is produced at run time if
+VERSION is greater than the version of the current Perl interpreter.
+Compare with L</use>, which can do a similar check at compile time.
+
+Specifying VERSION as a literal of the form v5.6.1 should generally be
+avoided, because it leads to misleading error messages under earlier
+versions of Perl which do not support this syntax. The equivalent numeric
+version should be used instead.
+
+ require v5.6.1; # run time version check
+ require 5.6.1; # ditto
+ require 5.006_001; # ditto; preferred for backwards compatibility
Otherwise, demands that a library file be included if it hasn't already
been included. The file is included via the do-FILE mechanism, which is
@@ -5030,7 +5031,7 @@
a given string (a dot C<.> by default). This can be useful for
displaying ordinal values of characters in arbitrary strings:
- printf "version is v%vd\n", $^V; # Perl's version (deprecated)
+ printf "version is v%vd\n", $^V; # Perl's version
Put an asterisk C<*> before the C<v> to override the string to
use to separate the numbers:
@@ -6130,26 +6131,28 @@
except that Module I<must> be a bareword.
-VERSION will be compared to C<$]>. A fatal error is produced if
-VERSION is greater than the version of the current Perl interpreter;
-Perl will not attempt to parse the rest of the file. Compare with
-L</require>, which can do a similar check at run time.
-
- use 5.006; # compile time version check for Perl 5.6.0
- use 5.006_001; # ditto for Perl 5.6.1
+VERSION may be either a numeric argument such as 5.006, which will be
+compared to C<$]>, or a literal of the form v5.6.1, which will be compared
+to C<$^V> (aka $PERL_VERSION. A fatal error is produced if VERSION is
+greater than the version of the current Perl interpreter; Perl will not
+attempt to parse the rest of the file. Compare with L</require>, which can
+do a similar check at run time.
+
+Specifying VERSION as a literal of the form v5.6.1 should generally be
+avoided, because it leads to misleading error messages under earlier
+versions of Perl which do not support this syntax. The equivalent numeric
+version should be used instead.
+
+ use v5.6.1; # compile time version check
+ use 5.6.1; # ditto
+ use 5.006_001; # ditto; preferred for backwards compatibility
This is often useful if you need to check the current Perl version before
C<use>ing library modules that have changed in incompatible ways from
older versions of Perl. (We try not to do this more than we have to.)
-The alternate way of specifying VERSION (introduced in Perl 5.6.0)
-as a literal of the form v5.6.1 should generally be avoided, because
-it leads to misleading error messages under earlier versions of Perl
-which do not support this syntax. The equivalent numeric version
-should be used instead.
-
-The C<BEGIN> forces the C<require> and C<import> to happen at compile time.
-The C<require> makes sure the module is loaded into memory if it hasn't been
+The C<BEGIN> forces the C<require> and C<import> to happen at compile time. The
+C<require> makes sure the module is loaded into memory if it hasn't been
yet. The C<import> is not a builtin--it's just an ordinary static method
call into the C<Module> package to tell the module to import the list of
features back into the current package. The module can implement its
==== //depot/maint-5.8/perl/pod/perlvar.pod#24 (text) ====
Index: perl/pod/perlvar.pod
--- perl/pod/perlvar.pod#23~20477~ Mon Aug 4 06:37:09 2003
+++ perl/pod/perlvar.pod Wed Aug 6 03:47:28 2003
@@ -924,6 +924,10 @@
and C<< > >> to the tests containing equivalence: C<< <= >>, C<< == >>,
and C<< >= >>.
+The floating point representation can sometimes lead to inaccurate
+numeric comparisons. See C<$^V> for a more modern representation of
+the Perl version that allows accurate string comparisons.
+
=item $COMPILING
=item $^C
@@ -1154,15 +1158,6 @@
=item $^V
-B<NOTE: Version Strings (v-strings) have been deprecated in Perl 5.8.1.
-Version strings will be removed in some future release after Perl 5.8.1.
-The C<$^V> was implemented using v-strings, and therefore its future
-is uncertain. Please refrain from using the C<$^V> and use the C<$]>
-instead.>
-
-(The following explanation describes the situation as it used to be
-for Perls starting from 5.6.0 up to and including 5.8.0.)
-
The revision, version, and subversion of the Perl interpreter, represented
as a string composed of characters with those ordinals. Thus in Perl v5.6.0
it equals C<chr(5) . chr(6) . chr(0)> and will return true for
@@ -1183,7 +1178,7 @@
See the documentation of C<use VERSION> and C<require VERSION>
for a convenient way to fail if the running Perl interpreter is too old.
-See also C<$]>.
+See also C<$]> for an older representation of the Perl version.
=item $WARNING
End of Patch.