bset_obj_store(aTHX_ bstate, obj, (I32)ix) : (bstate->bs_obj_list[ix] = obj)
/* NOTE: the bytecode header only sanity-checks the bytecode. If a script cares about
- * what version of Perl it's being called under, it should do a 'require 5.6.0' or
+ * what version of Perl it's being called under, it should do a 'use 5.006_001' or
* equivalent. However, since the header includes checks requiring an exact match in
* ByteLoader versions (we can't guarantee forward compatibility), you don't
* need to specify one:
#$| = 1;
-require 5.6.1;
+use 5.006_001;
require Exporter;
use XSLoader ();
require overload;
-require 5.6.1;
+use 5.006_001;
=head1 NAME
package IO::Dir;
-use 5.6.0;
+use 5.006;
use strict;
use Carp;
=cut
-require 5.6.1;
+use 5.006_001;
use strict;
our($VERSION, @EXPORT, @EXPORT_OK, @ISA);
use Carp;
=cut
-require 5.6.1;
+use 5.006_001;
use strict;
our($VERSION, @EXPORT_OK, @ISA);
use Carp;
package IO::Pipe;
-require 5.6.1;
+use 5.006_001;
use IO::Handle;
use strict;
=cut
-require 5.6.1;
+use 5.006_001;
use Carp;
use strict;
our($VERSION, @EXPORT, @ISA);
package Opcode;
-require 5.6.1;
+use 5.006_001;
use strict;
package AnyDBM_File;
-use 5.6.1;
+use 5.006_001;
our $VERSION = '1.00';
our @ISA = qw(NDBM_File DB_File GDBM_File SDBM_File ODBM_File) unless @ISA;
package AutoLoader;
-use 5.6.0;
+use 5.006_001;
our(@EXPORT, @EXPORT_OK, $VERSION);
my $is_dosish;
package AutoSplit;
-use 5.6.1;
+use 5.006_001;
use Exporter ();
use Config qw(%Config);
use Carp qw(carp);
## See POD after __END__
-use 5.6.1;
+use 5.006_001;
use strict;
use warnings::register;
package Cwd;
-require 5.6.0;
+use 5.006;
=head1 NAME
-use 5.6.1; # for (defined ref) and $#$v and our
+use 5.006_001; # for (defined ref) and $#$v and our
package Dumpvalue;
use strict;
our $VERSION = '1.00';
package ExtUtils::Command;
-use 5.6.1;
+use 5.006_001;
use strict;
# use AutoLoader;
use Carp;
package ExtUtils::Install;
-use 5.6.1;
+use 5.006_001;
our(@ISA, @EXPORT, $VERSION);
$VERSION = substr q$Revision: 1.29 $, 10;
# $Date: 1998/01/25 07:08:24 $
package ExtUtils::Installed;
-use 5.6.1;
+use 5.006_001;
use strict;
use Carp qw();
use ExtUtils::Packlist;
# This kid package is to be used by MakeMaker. It will not work if
# $self is not a Makemaker.
-use 5.6.1;
+use 5.006_001;
# Broken out of MakeMaker from version 4.11
our $VERSION = substr q$Revision: 1.27 $, 10;
package ExtUtils::Mksymlists;
-use 5.6.1;
+use 5.006_001;
use strict qw[ subs refs ];
# no strict 'vars'; # until filehandles are exempted
package ExtUtils::Packlist;
-use 5.6.1;
+use 5.006_001;
use strict;
use Carp qw();
our $VERSION = '0.04';
package Fatal;
-use 5.6.1;
+use 5.006_001;
use Carp;
use strict;
our($AUTOLOAD, $Debug, $VERSION);
-use 5.6.0;
+use 5.006;
use warnings;
our(@ISA, @EXPORT, $VERSION, $Fileparse_fstype, $Fileparse_igncase);
require Exporter;
our $VERSION = '4.1';
-require 5.6.0;
+use 5.006;
require Exporter;
use warnings;
package File::Compare;
-use 5.6.0;
+use 5.006;
use strict;
use warnings;
our($VERSION, @ISA, @EXPORT, @EXPORT_OK, $Too_Big);
package File::Copy;
-use 5.6.0;
+use 5.006;
use strict;
use warnings;
use Carp;
package File::Find;
+use 5.006;
use strict;
use warnings;
-use 5.6.0;
our $VERSION = '1.02';
require Exporter;
require Cwd;
=cut
-use 5.6.0;
+use 5.006;
use Carp;
use File::Basename ();
use Exporter ();
package File::stat;
+use 5.006;
+
use strict;
use warnings;
-use 5.6.0;
our(@EXPORT, @EXPORT_OK, %EXPORT_TAGS);
our $VERSION = '1.00';
package FileHandle;
-use 5.6.1;
+use 5.006;
use strict;
our($VERSION, @ISA, @EXPORT, @EXPORT_OK);
require Exporter;
package Math::Trig;
-use 5.6.1;
+use 5.006;
use strict;
use Math::Complex qw(:trig);
# Copyright (c) 2001, Colin McMillen. All rights reserved. This
# program is free software; you may redistribute it and/or modify it
# under the same terms as Perl itself.
-use 5.6.1;
+use 5.006_001;
require Exporter;
use strict;
package Net::hostent;
use strict;
-use 5.6.1;
+use 5.006_001;
our $VERSION = '1.00';
our(@EXPORT, @EXPORT_OK, %EXPORT_TAGS);
BEGIN {
package Net::netent;
use strict;
-use 5.6.1;
+use 5.006_001;
our $VERSION = '1.00';
our(@EXPORT, @EXPORT_OK, %EXPORT_TAGS);
BEGIN {
package Net::protoent;
use strict;
-use 5.6.1;
+use 5.006_001;
our $VERSION = '1.00';
our(@EXPORT, @EXPORT_OK, %EXPORT_TAGS);
BEGIN {
package Net::servent;
use strict;
-use 5.6.1;
+use 5.006_001;
our $VERSION = '1.00';
our(@EXPORT, @EXPORT_OK, %EXPORT_TAGS);
BEGIN {
package Shell;
-use 5.6.1;
+use 5.006_001;
use strict;
use warnings;
our($capture_stderr, $VERSION, $AUTOLOAD);
package Tie::Array;
-use 5.6.1;
+use 5.006_001;
use strict;
use Carp;
our $VERSION = '1.02';
package Tie::Handle;
-use 5.6.1;
+use 5.006_001;
our $VERSION = '4.1';
=head1 NAME
package Time::Local;
-require 5.6.0;
+use 5.006;
require Exporter;
use Carp;
use strict;
package Time::gmtime;
use strict;
+use 5.006_001;
+
use Time::tm;
-use 5.6.1;
our(@ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS, $VERSION);
BEGIN {
use Exporter ();
package Time::localtime;
use strict;
+use 5.006_001;
+
use Time::tm;
-use 5.6.1;
our(@ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS, $VERSION);
BEGIN {
use Exporter ();
package User::grent;
use strict;
-use 5.6.1;
+use 5.006_001;
our $VERSION = '1.00';
our(@EXPORT, @EXPORT_OK, %EXPORT_TAGS);
BEGIN {
package base;
-use 5.6.1;
+use 5.006_001;
our $VERSION = "1.02";
sub import {
=cut
use strict;
-use 5.6.0;
+use 5.006;
use Carp;
our $VERSION = 1.1;
=cut
-use 5.6.1;
+use 5.006_001;
use strict;
no strict 'refs';
use warnings::register;
package vars;
-require 5.6.0;
+use 5.006;
our $VERSION = '1.01';
# new features supported
}
-C<require> and C<use> also have some special magic to support such literals.
-They will be interpreted as a version rather than as a module name:
-
- require v5.6.0; # croak if $^V lt v5.6.0
- use v5.6.0; # same, but croaks at compile-time
-
-Alternatively, the C<v> may be omitted if there is more than one dot:
-
- require 5.6.0;
- use 5.6.0;
+C<require> and C<use> also have some special magic to support such
+literals, but this particular usage should be avoided because it leads to
+misleading error messages under versions of Perl which don't support vector
+strings. Using a true version number will ensure correct behavior in all
+versions of Perl:
+
+ require 5.006; # run time check for v5.6
+ use 5.006_001; # compile time check for v5.6.1
Also, C<sprintf> and C<printf> support the Perl-specific format flag C<%v>
to print ordinals of characters in arbitrary strings:
=item require
-Demands some semantics specified by EXPR, or by C<$_> if EXPR is not
-supplied.
+Demands a version of Perl specified by VERSION, or demands some semantics
+specified by EXPR or by C<$_> if EXPR is not supplied.
-If a VERSION is specified as a literal of the form v5.6.1,
-demands that the current version of Perl (C<$^V> or $PERL_VERSION) be
-at least as recent as that version, at run time. (For compatibility
-with older versions of Perl, a numeric argument will also be interpreted
-as VERSION.) Compare with L</use>, which can do a similar check at
-compile time.
+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.005_03; # float version allowed for compatibility
+ 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
except that Module I<must> be a bareword.
-VERSION, which can be specified as a literal of the form v5.6.1, demands
-that the current version of Perl (C<$^V> or $PERL_VERSION) be at least
-as recent as that version. (For compatibility with older versions of Perl,
-a numeric literal will also be interpreted as VERSION.) If the version
-of the running Perl interpreter is less than VERSION, then an error
-message is printed and Perl exits immediately without attempting to
-parse the rest of the file. Compare with L</require>, which can do a
-similar check at run time.
+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.005_03; # float version allowed for compatibility
+ 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
if (sver == 0 && (rev > 5 || (rev == 5 && ver >= 100))) {
DIE(aTHX_ "Perl v%"UVuf".%"UVuf".%"UVuf" required--"
"this is only v%d.%d.%d, stopped"
- " (did you mean v%"UVuf".%"UVuf".0?)",
+ " (did you mean v%"UVuf".%03"UVuf"?)",
rev, ver, sver, PERL_REVISION, PERL_VERSION,
PERL_SUBVERSION, rev, ver/100);
}
if ( open(PM, ">$newname") ) {
print PM <<"END";
package $newpack;
-require 5.6.0;
+use 5.006;
require Exporter;
$carp
\@ISA = qw(Exporter);