diff --git i/Porting/Maintainers.pm w/Porting/Maintainers.pm
index 6b28ea7e5..8ce8642c1 100644
--- i/Porting/Maintainers.pm
+++ w/Porting/Maintainers.pm
@@ -13,16 +13,16 @@ use lib "Porting";
 use 5.008;
 
 require "Maintainers.pl";
-use vars qw(%Modules %Maintainers);
 
-use vars qw(@ISA @EXPORT_OK $VERSION);
-@ISA = qw(Exporter);
-@EXPORT_OK = qw(%Modules %Maintainers
+our (%Modules, %Maintainers);
+
+our @ISA = qw(Exporter);
+our @EXPORT_OK = qw(%Modules %Maintainers
 		get_module_files get_module_pat
 		show_results process_options files_to_modules
 		finish_tap_output
 		reload_manifest);
-$VERSION = 0.10;
+our $VERSION = 0.10;
 
 require Exporter;
 
diff --git i/dist/Attribute-Handlers/lib/Attribute/Handlers.pm w/dist/Attribute-Handlers/lib/Attribute/Handlers.pm
index 7c049d48e..c2b25474a 100644
--- i/dist/Attribute-Handlers/lib/Attribute/Handlers.pm
+++ w/dist/Attribute-Handlers/lib/Attribute/Handlers.pm
@@ -3,8 +3,9 @@ use 5.006;
 use Carp;
 use warnings;
 use strict;
-use vars qw($VERSION $AUTOLOAD);
-$VERSION = '0.99'; # remember to update version in POD!
+
+our $AUTOLOAD;
+our $VERSION = '0.99'; # remember to update version in POD!
 # $DB::single=1;
 
 my %symcache;
diff --git i/dist/Env/lib/Env.pm w/dist/Env/lib/Env.pm
index 6e6cd8b23..ef6dd199c 100644
--- i/dist/Env/lib/Env.pm
+++ w/dist/Env/lib/Env.pm
@@ -81,7 +81,7 @@ sub import {
 
     @vars = map { m/^[\$\@]/ ? $_ : '$'.$_ } @vars;
 
-    eval "package $callpack; use vars qw(" . join(' ', @vars) . ")";
+    eval "package $callpack; our (" . join(', ', @vars) . ")";
     die $@ if $@;
     foreach (@vars) {
 	my ($type, $name) = m/^([\$\@])(.*)$/;
diff --git i/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder.pm w/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder.pm
index 6ce0c6879..d84cc5471 100644
--- i/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder.pm
+++ w/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder.pm
@@ -7,7 +7,8 @@ use Perl::OSType qw/os_type/;
 
 use warnings;
 use strict;
-use vars qw(@ISA);
+
+our @ISA;
 
 # We only use this once - don't waste a symbol table entry on it.
 # More importantly, don't make it an inheritable method.
diff --git i/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Unix.pm w/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Unix.pm
index 399e254aa..9aa35a71b 100644
--- i/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Unix.pm
+++ w/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Unix.pm
@@ -1,11 +1,10 @@
 package ExtUtils::CBuilder::Platform::Unix;
-$ExtUtils::CBuilder::Platform::Unix::VERSION = '0.280225';
 use warnings;
 use strict;
 use ExtUtils::CBuilder::Base;
 
-use vars qw(@ISA);
-@ISA = qw(ExtUtils::CBuilder::Base);
+our $VERSION = '0.280225';
+our @ISA = qw(ExtUtils::CBuilder::Base);
 
 sub link_executable {
   my $self = shift;
diff --git i/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/VMS.pm w/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/VMS.pm
index e9d9f6fc2..9e073103a 100644
--- i/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/VMS.pm
+++ w/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/VMS.pm
@@ -1,11 +1,10 @@
 package ExtUtils::CBuilder::Platform::VMS;
-$ExtUtils::CBuilder::Platform::VMS::VERSION = '0.280225';
 use warnings;
 use strict;
 use ExtUtils::CBuilder::Base;
 
-use vars qw(@ISA);
-@ISA = qw(ExtUtils::CBuilder::Base);
+our $VERSION = '0.280225';
+our @ISA = qw(ExtUtils::CBuilder::Base);
 
 use File::Spec::Functions qw(catfile catdir);
 use Config;
diff --git i/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows.pm w/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows.pm
index 80b8f29cd..264c95ffe 100644
--- i/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows.pm
+++ w/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/Windows.pm
@@ -1,5 +1,4 @@
 package ExtUtils::CBuilder::Platform::Windows;
-$ExtUtils::CBuilder::Platform::Windows::VERSION = '0.280225';
 use strict;
 use warnings;
 
@@ -9,8 +8,8 @@ use File::Spec;
 use ExtUtils::CBuilder::Base;
 use IO::File;
 
-use vars qw(@ISA);
-@ISA = qw(ExtUtils::CBuilder::Base);
+our $VERSION = '0.280225';
+our @ISA = qw(ExtUtils::CBuilder::Base);
 
 =begin comment
 
diff --git i/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/aix.pm w/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/aix.pm
index 488d3e68b..faf9b0625 100644
--- i/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/aix.pm
+++ w/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/aix.pm
@@ -1,12 +1,11 @@
 package ExtUtils::CBuilder::Platform::aix;
-$ExtUtils::CBuilder::Platform::aix::VERSION = '0.280225';
 use warnings;
 use strict;
 use ExtUtils::CBuilder::Platform::Unix;
 use File::Spec;
 
-use vars qw(@ISA);
-@ISA = qw(ExtUtils::CBuilder::Platform::Unix);
+our $VERSION = '0.280225';
+our @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
 
 sub need_prelink { 1 }
 
diff --git i/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/android.pm w/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/android.pm
index b9e6af312..67d387819 100644
--- i/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/android.pm
+++ w/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/android.pm
@@ -1,13 +1,12 @@
 package ExtUtils::CBuilder::Platform::android;
-$ExtUtils::CBuilder::Platform::android::VERSION = '0.280225';
 use warnings;
 use strict;
 use File::Spec;
 use ExtUtils::CBuilder::Platform::Unix;
 use Config;
 
-use vars qw(@ISA);
-@ISA = qw(ExtUtils::CBuilder::Platform::Unix);
+our $VERSION = '0.280225';
+our @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
 
 # The Android linker will not recognize symbols from
 # libperl unless the module explicitly depends on it.
diff --git i/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/cygwin.pm w/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/cygwin.pm
index 339840f8c..62cefad29 100644
--- i/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/cygwin.pm
+++ w/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/cygwin.pm
@@ -1,12 +1,11 @@
 package ExtUtils::CBuilder::Platform::cygwin;
-$ExtUtils::CBuilder::Platform::cygwin::VERSION = '0.280225';
 use warnings;
 use strict;
 use File::Spec;
 use ExtUtils::CBuilder::Platform::Unix;
 
-use vars qw(@ISA);
-@ISA = qw(ExtUtils::CBuilder::Platform::Unix);
+our $VERSION = '0.280225';
+our @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
 
 # TODO: If a specific exe_file name is requested, if the exe created
 # doesn't have that name, we might want to rename it.  Apparently asking
diff --git i/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/darwin.pm w/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/darwin.pm
index 04a87da33..95e7fa50f 100644
--- i/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/darwin.pm
+++ w/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/darwin.pm
@@ -1,11 +1,11 @@
 package ExtUtils::CBuilder::Platform::darwin;
-$ExtUtils::CBuilder::Platform::darwin::VERSION = '0.280225';
+
 use warnings;
 use strict;
 use ExtUtils::CBuilder::Platform::Unix;
 
-use vars qw(@ISA);
-@ISA = qw(ExtUtils::CBuilder::Platform::Unix);
+our $VERSION = '0.280225';
+our @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
 
 sub compile {
   my $self = shift;
diff --git i/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/dec_osf.pm w/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/dec_osf.pm
index d503e8614..b0aecd13f 100644
--- i/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/dec_osf.pm
+++ w/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/dec_osf.pm
@@ -1,12 +1,12 @@
 package ExtUtils::CBuilder::Platform::dec_osf;
-$ExtUtils::CBuilder::Platform::dec_osf::VERSION = '0.280225';
+
 use warnings;
 use strict;
 use ExtUtils::CBuilder::Platform::Unix;
 use File::Spec;
 
-use vars qw(@ISA);
-@ISA = qw(ExtUtils::CBuilder::Platform::Unix);
+our $VERSION = '0.280225';
+our @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
 
 sub link_executable {
   my $self = shift;
diff --git i/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/os2.pm w/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/os2.pm
index 8d0e3eb0d..f6887026c 100644
--- i/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/os2.pm
+++ w/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Platform/os2.pm
@@ -1,11 +1,10 @@
 package ExtUtils::CBuilder::Platform::os2;
-$ExtUtils::CBuilder::Platform::os2::VERSION = '0.280225';
 use warnings;
 use strict;
 use ExtUtils::CBuilder::Platform::Unix;
 
-use vars qw(@ISA);
-@ISA = qw(ExtUtils::CBuilder::Platform::Unix);
+our $VERSION = '0.280225';
+our @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
 
 sub need_prelink { 1 }
 
diff --git i/dist/Filter-Simple/lib/Filter/Simple.pm w/dist/Filter-Simple/lib/Filter/Simple.pm
index 82129192b..74025d2dc 100644
--- i/dist/Filter-Simple/lib/Filter/Simple.pm
+++ w/dist/Filter-Simple/lib/Filter/Simple.pm
@@ -2,14 +2,12 @@ package Filter::Simple;
 
 use Text::Balanced ':ALL';
 
-use vars qw{ $VERSION @EXPORT };
-
-$VERSION = '0.92';
+our $VERSION = '0.92';
 
 use Filter::Util::Call;
 use Carp;
 
-@EXPORT = qw( FILTER FILTER_ONLY );
+our @EXPORT = qw( FILTER FILTER_ONLY );
 
 
 sub import {
diff --git i/dist/I18N-LangTags/lib/I18N/LangTags.pm w/dist/I18N-LangTags/lib/I18N/LangTags.pm
index 9bac7077e..8897c80b2 100644
--- i/dist/I18N-LangTags/lib/I18N/LangTags.pm
+++ w/dist/I18N-LangTags/lib/I18N/LangTags.pm
@@ -5,11 +5,11 @@
 require 5.000;
 package I18N::LangTags;
 use strict;
-use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $VERSION %Panic);
 require Exporter;
-@ISA = qw(Exporter);
-@EXPORT = qw();
-@EXPORT_OK = qw(is_language_tag same_language_tag
+
+our @ISA = qw(Exporter);
+our @EXPORT = qw();
+our @EXPORT_OK = qw(is_language_tag same_language_tag
                 extract_language_tags super_languages
                 similarity_language_tag is_dialect_of
                 locale2language_tag alternate_language_tags
@@ -17,9 +17,11 @@ require Exporter;
                 implicate_supers
                 implicate_supers_strictly
                );
-%EXPORT_TAGS = ('ALL' => \@EXPORT_OK);
+our %EXPORT_TAGS = ('ALL' => \@EXPORT_OK);
+
+our $VERSION = "0.40";
 
-$VERSION = "0.40";
+our %Panic;
 
 sub uniq { my %seen; return grep(!($seen{$_}++), @_); } # a util function
 
diff --git i/dist/I18N-LangTags/lib/I18N/LangTags/Detect.pm w/dist/I18N-LangTags/lib/I18N/LangTags/Detect.pm
index a877fbfc7..77dcb78e4 100644
--- i/dist/I18N-LangTags/lib/I18N/LangTags/Detect.pm
+++ w/dist/I18N-LangTags/lib/I18N/LangTags/Detect.pm
@@ -5,16 +5,15 @@ require 5;
 package I18N::LangTags::Detect;
 use strict;
 
-use vars qw( @ISA $VERSION $MATCH_SUPERS $USING_LANGUAGE_TAGS
-             $USE_LITERALS $MATCH_SUPERS_TIGHTLY);
-
 BEGIN { unless(defined &DEBUG) { *DEBUG = sub () {0} } }
  # define the constant 'DEBUG' at compile-time
 
-$VERSION = "1.05_01";
-@ISA = ();
+our $VERSION = "1.05_01";
+our @ISA = ();
 use I18N::LangTags qw(alternate_language_tags locale2language_tag);
 
+our ($MATCH_SUPERS, $USING_LANGUAGE_TAGS, $USE_LITERALS, $MATCH_SUPERS_TIGHTLY);
+
 sub _uniq { my %seen; return grep(!($seen{$_}++), @_); }
 sub _normalize {
   my(@languages) =
diff --git i/dist/I18N-LangTags/lib/I18N/LangTags/List.pm w/dist/I18N-LangTags/lib/I18N/LangTags/List.pm
index 786d7b89b..25ea84c01 100644
--- i/dist/I18N-LangTags/lib/I18N/LangTags/List.pm
+++ w/dist/I18N-LangTags/lib/I18N/LangTags/List.pm
@@ -3,8 +3,9 @@ require 5;
 package I18N::LangTags::List;
 #  Time-stamp: "2004-10-06 23:26:21 ADT"
 use strict;
-use vars qw(%Name %Is_Disrec $Debug $VERSION);
-$VERSION = '0.39';
+
+our $VERSION = '0.39';
+our (%Name, %Is_Disrec, $Debug);
 # POD at the end.
 
 #----------------------------------------------------------------------
diff --git i/dist/Locale-Maketext/lib/Locale/Maketext.pm w/dist/Locale-Maketext/lib/Locale/Maketext.pm
index e73c149a0..974e695b1 100644
--- i/dist/Locale-Maketext/lib/Locale/Maketext.pm
+++ w/dist/Locale-Maketext/lib/Locale/Maketext.pm
@@ -1,8 +1,6 @@
 
 package Locale::Maketext;
 use strict;
-use vars qw( @ISA $VERSION $MATCH_SUPERS $USING_LANGUAGE_TAGS
-$USE_LITERALS $MATCH_SUPERS_TIGHTLY);
 use Carp ();
 use I18N::LangTags ();
 use I18N::LangTags::Detect ();
@@ -27,18 +25,18 @@ BEGIN {
 }
 
 
-$VERSION = '1.26_01';
-@ISA = ();
+our $VERSION = '1.26_01';
+our @ISA = ();
 
-$MATCH_SUPERS = 1;
-$MATCH_SUPERS_TIGHTLY = 1;
-$USING_LANGUAGE_TAGS  = 1;
+our $MATCH_SUPERS = 1;
+our $MATCH_SUPERS_TIGHTLY = 1;
+our $USING_LANGUAGE_TAGS  = 1;
 # Turning this off is somewhat of a security risk in that little or no
 # checking will be done on the legality of tokens passed to the
 # eval("use $module_name") in _try_use.  If you turn this off, you have
 # to do your own taint checking.
 
-$USE_LITERALS = 1 unless defined $USE_LITERALS;
+our $USE_LITERALS = 1 unless defined $USE_LITERALS;
 # a hint for compiling bracket-notation things.
 
 my %isa_scan = ();
diff --git i/dist/Module-CoreList/lib/Module/CoreList.pm w/dist/Module-CoreList/lib/Module/CoreList.pm
index 6cbf8d054..58a05cf89 100644
--- i/dist/Module-CoreList/lib/Module/CoreList.pm
+++ w/dist/Module-CoreList/lib/Module/CoreList.pm
@@ -1,10 +1,11 @@
 package Module::CoreList;
 use strict;
-use vars qw/$VERSION %released %version %families %upstream
-	    %bug_tracker %deprecated %delta/;
 use Module::CoreList::TieHashDelta;
 use version;
-$VERSION = '5.20170114_24';
+
+our $VERSION = '5.20170114_24';
+our (%released, %version, %families, %upstream,
+     %bug_tracker, %deprecated, %delta);
 
 sub _released_order {   # Sort helper, to make '?' sort after everything else
     (substr($released{$a}, 0, 1) eq "?")
diff --git i/dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm w/dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm
index dedd3ab49..4334bacde 100644
--- i/dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm
+++ w/dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm
@@ -1,9 +1,8 @@
 # For internal Module::CoreList use only.
 package Module::CoreList::TieHashDelta;
 use strict;
-use vars qw($VERSION);
 
-$VERSION = '5.20170114_24';
+our $VERSION = '5.20170114_24';
 
 sub TIEHASH {
     my ($class, $changed, $removed, $parent) = @_;
diff --git i/dist/Module-CoreList/lib/Module/CoreList/Utils.pm w/dist/Module-CoreList/lib/Module/CoreList/Utils.pm
index 71edc4f4d..d2b94750d 100644
--- i/dist/Module-CoreList/lib/Module/CoreList/Utils.pm
+++ w/dist/Module-CoreList/lib/Module/CoreList/Utils.pm
@@ -2,11 +2,11 @@ package Module::CoreList::Utils;
 
 use strict;
 use warnings;
-use vars qw[$VERSION %utilities];
 use Module::CoreList;
 use Module::CoreList::TieHashDelta;
 
-$VERSION = '5.20170114_24';
+our $VERSION = '5.20170114_24';
+our %utilities;
 
 sub utilities {
     my $perl = shift;
diff --git i/dist/Net-Ping/lib/Net/Ping.pm w/dist/Net-Ping/lib/Net/Ping.pm
index 86b0dfd3f..9288cb8df 100644
--- i/dist/Net-Ping/lib/Net/Ping.pm
+++ w/dist/Net-Ping/lib/Net/Ping.pm
@@ -4,9 +4,6 @@ require 5.002;
 require Exporter;
 
 use strict;
-use vars qw(@ISA @EXPORT $VERSION
-            $def_timeout $def_proto $def_factor
-            $max_datasize $pingstring $hires $source_verify $syn_forking);
 use Fcntl qw( F_GETFL F_SETFL O_NONBLOCK );
 use Socket qw( SOCK_DGRAM SOCK_STREAM SOCK_RAW PF_INET SOL_SOCKET SO_ERROR IPPROTO_IP IP_TOS IP_TTL
                inet_aton getnameinfo NI_NUMERICHOST sockaddr_in );
@@ -15,20 +12,21 @@ use FileHandle;
 use Carp;
 use Time::HiRes;
 
-@ISA = qw(Exporter);
-@EXPORT = qw(pingecho);
-$VERSION = "2.43_01";
+our @ISA = qw(Exporter);
+our @EXPORT = qw(pingecho);
+our $VERSION = "2.43_01";
 
 # Constants
 
-$def_timeout = 5;           # Default timeout to wait for a reply
-$def_proto = "tcp";         # Default protocol to use for pinging
-$def_factor = 1.2;          # Default exponential backoff rate.
-$max_datasize = 1024;       # Maximum data bytes in a packet
+our $def_timeout = 5;           # Default timeout to wait for a reply
+our $def_proto = "tcp";         # Default protocol to use for pinging
+our $def_factor = 1.2;          # Default exponential backoff rate.
+our $max_datasize = 1024;       # Maximum data bytes in a packet
 # The data we exchange with the server for the stream protocol
-$pingstring = "pingschwingping!\n";
-$source_verify = 1;         # Default is to verify source endpoint
-$syn_forking = 0;
+our $pingstring = "pingschwingping!\n";
+our $source_verify = 1;         # Default is to verify source endpoint
+our $syn_forking = 0;
+our $hires = 1;
 
 if ($^O =~ /Win32/i) {
   # Hack to avoid this Win32 spewage:
@@ -313,7 +311,6 @@ sub retrans
 # Description: allows the module to use milliseconds as returned by
 # the Time::HiRes module
 
-$hires = 1;
 sub hires
 {
   my $self = shift;
diff --git i/dist/PathTools/Cwd.pm w/dist/PathTools/Cwd.pm
index 3b6388938..79e5cc2a3 100644
--- i/dist/PathTools/Cwd.pm
+++ w/dist/PathTools/Cwd.pm
@@ -1,16 +1,15 @@
 package Cwd;
 use strict;
 use Exporter;
-use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION);
 
-$VERSION = '3.63_01';
+our $VERSION = '3.63_01';
 my $xs_version = $VERSION;
 $VERSION =~ tr/_//d;
 
-@ISA = qw/ Exporter /;
-@EXPORT = qw(cwd getcwd fastcwd fastgetcwd);
+our @ISA = qw/ Exporter /;
+our @EXPORT = qw(cwd getcwd fastcwd fastgetcwd);
 push @EXPORT, qw(getdcwd) if $^O eq 'MSWin32';
-@EXPORT_OK = qw(chdir abs_path fast_abs_path realpath fast_realpath);
+our @EXPORT_OK = qw(chdir abs_path fast_abs_path realpath fast_realpath);
 
 # sys_cwd may keep the builtin command
 
diff --git i/dist/PathTools/lib/File/Spec.pm w/dist/PathTools/lib/File/Spec.pm
index 3ef0f339d..630f1970e 100644
--- i/dist/PathTools/lib/File/Spec.pm
+++ w/dist/PathTools/lib/File/Spec.pm
@@ -1,9 +1,8 @@
 package File::Spec;
 
 use strict;
-use vars qw(@ISA $VERSION);
 
-$VERSION = '3.63_01';
+our $VERSION = '3.63_01';
 $VERSION =~ tr/_//d;
 
 my %module = (MacOS   => 'Mac',
@@ -21,7 +20,7 @@ my %module = (MacOS   => 'Mac',
 my $module = $module{$^O} || 'Unix';
 
 require "File/Spec/$module.pm";
-@ISA = ("File::Spec::$module");
+our @ISA = ("File::Spec::$module");
 
 1;
 
diff --git i/dist/PathTools/lib/File/Spec/AmigaOS.pm w/dist/PathTools/lib/File/Spec/AmigaOS.pm
index 7a5889cec..99aa44995 100644
--- i/dist/PathTools/lib/File/Spec/AmigaOS.pm
+++ w/dist/PathTools/lib/File/Spec/AmigaOS.pm
@@ -1,13 +1,12 @@
 package File::Spec::AmigaOS;
 
 use strict;
-use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
 
-$VERSION = '3.64';
+our $VERSION = '3.64';
 $VERSION =~ tr/_//d;
 
-@ISA = qw(File::Spec::Unix);
+our @ISA = qw(File::Spec::Unix);
 
 =head1 NAME
 
diff --git i/dist/PathTools/lib/File/Spec/Cygwin.pm w/dist/PathTools/lib/File/Spec/Cygwin.pm
index 10b14c4b9..5922ed6c4 100644
--- i/dist/PathTools/lib/File/Spec/Cygwin.pm
+++ w/dist/PathTools/lib/File/Spec/Cygwin.pm
@@ -1,13 +1,12 @@
 package File::Spec::Cygwin;
 
 use strict;
-use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
 
-$VERSION = '3.63_01';
+our $VERSION = '3.63_01';
 $VERSION =~ tr/_//d;
 
-@ISA = qw(File::Spec::Unix);
+our @ISA = qw(File::Spec::Unix);
 
 =head1 NAME
 
diff --git i/dist/PathTools/lib/File/Spec/Epoc.pm w/dist/PathTools/lib/File/Spec/Epoc.pm
index 9b9e1fae5..caa755f35 100644
--- i/dist/PathTools/lib/File/Spec/Epoc.pm
+++ w/dist/PathTools/lib/File/Spec/Epoc.pm
@@ -1,13 +1,12 @@
 package File::Spec::Epoc;
 
 use strict;
-use vars qw($VERSION @ISA);
 
-$VERSION = '3.63_01';
+our $VERSION = '3.63_01';
 $VERSION =~ tr/_//d;
 
 require File::Spec::Unix;
-@ISA = qw(File::Spec::Unix);
+our @ISA = qw(File::Spec::Unix);
 
 =head1 NAME
 
diff --git i/dist/PathTools/lib/File/Spec/Functions.pm w/dist/PathTools/lib/File/Spec/Functions.pm
index a4e1b1bb3..6d4f507e7 100644
--- i/dist/PathTools/lib/File/Spec/Functions.pm
+++ w/dist/PathTools/lib/File/Spec/Functions.pm
@@ -3,16 +3,14 @@ package File::Spec::Functions;
 use File::Spec;
 use strict;
 
-use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $VERSION);
-
-$VERSION = '3.63_01';
+our $VERSION = '3.63_01';
 $VERSION =~ tr/_//d;
 
 require Exporter;
 
-@ISA = qw(Exporter);
+our @ISA = qw(Exporter);
 
-@EXPORT = qw(
+our @EXPORT = qw(
 	canonpath
 	catdir
 	catfile
@@ -24,7 +22,7 @@ require Exporter;
 	path
 );
 
-@EXPORT_OK = qw(
+our @EXPORT_OK = qw(
 	devnull
 	tmpdir
 	splitpath
@@ -35,7 +33,7 @@ require Exporter;
 	case_tolerant
 );
 
-%EXPORT_TAGS = ( ALL => [ @EXPORT_OK, @EXPORT ] );
+our %EXPORT_TAGS = ( ALL => [ @EXPORT_OK, @EXPORT ] );
 
 require File::Spec::Unix;
 my %udeps = (
diff --git i/dist/PathTools/lib/File/Spec/Mac.pm w/dist/PathTools/lib/File/Spec/Mac.pm
index 22424f325..24ba50d76 100644
--- i/dist/PathTools/lib/File/Spec/Mac.pm
+++ w/dist/PathTools/lib/File/Spec/Mac.pm
@@ -1,13 +1,12 @@
 package File::Spec::Mac;
 
 use strict;
-use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
 
-$VERSION = '3.63_01';
+our $VERSION = '3.63_01';
 $VERSION =~ tr/_//d;
 
-@ISA = qw(File::Spec::Unix);
+our @ISA = qw(File::Spec::Unix);
 
 my $macfiles;
 if ($^O eq 'MacOS') {
diff --git i/dist/PathTools/lib/File/Spec/OS2.pm w/dist/PathTools/lib/File/Spec/OS2.pm
index 0119042c9..70f7d1123 100644
--- i/dist/PathTools/lib/File/Spec/OS2.pm
+++ w/dist/PathTools/lib/File/Spec/OS2.pm
@@ -1,13 +1,12 @@
 package File::Spec::OS2;
 
 use strict;
-use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
 
-$VERSION = '3.63_01';
+our $VERSION = '3.63_01';
 $VERSION =~ tr/_//d;
 
-@ISA = qw(File::Spec::Unix);
+our @ISA = qw(File::Spec::Unix);
 
 sub devnull {
     return "/dev/nul";
diff --git i/dist/PathTools/lib/File/Spec/Unix.pm w/dist/PathTools/lib/File/Spec/Unix.pm
index 9598dbb36..86b6d1f1d 100644
--- i/dist/PathTools/lib/File/Spec/Unix.pm
+++ w/dist/PathTools/lib/File/Spec/Unix.pm
@@ -1,9 +1,8 @@
 package File::Spec::Unix;
 
 use strict;
-use vars qw($VERSION);
 
-$VERSION = '3.63_01';
+our $VERSION = '3.63_01';
 my $xs_version = $VERSION;
 $VERSION =~ tr/_//d;
 
diff --git i/dist/PathTools/lib/File/Spec/VMS.pm w/dist/PathTools/lib/File/Spec/VMS.pm
index c0cc1e504..59c6f7574 100644
--- i/dist/PathTools/lib/File/Spec/VMS.pm
+++ w/dist/PathTools/lib/File/Spec/VMS.pm
@@ -1,13 +1,12 @@
 package File::Spec::VMS;
 
 use strict;
-use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
 
-$VERSION = '3.63_01';
+our $VERSION = '3.63_01';
 $VERSION =~ tr/_//d;
 
-@ISA = qw(File::Spec::Unix);
+our @ISA = qw(File::Spec::Unix);
 
 use File::Basename;
 use VMS::Filespec;
diff --git i/dist/PathTools/lib/File/Spec/Win32.pm w/dist/PathTools/lib/File/Spec/Win32.pm
index 578d61b37..4aeff227d 100644
--- i/dist/PathTools/lib/File/Spec/Win32.pm
+++ w/dist/PathTools/lib/File/Spec/Win32.pm
@@ -2,13 +2,12 @@ package File::Spec::Win32;
 
 use strict;
 
-use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
 
-$VERSION = '3.63_01';
+our $VERSION = '3.63_01';
 $VERSION =~ tr/_//d;
 
-@ISA = qw(File::Spec::Unix);
+our @ISA = qw(File::Spec::Unix);
 
 # Some regexes we use for path splitting
 my $DRIVE_RX = '[a-zA-Z]:';
diff --git i/dist/SelfLoader/lib/SelfLoader.pm w/dist/SelfLoader/lib/SelfLoader.pm
index e36cb923d..feccbfd3d 100644
--- i/dist/SelfLoader/lib/SelfLoader.pm
+++ w/dist/SelfLoader/lib/SelfLoader.pm
@@ -6,7 +6,7 @@ our $VERSION = "1.23";
 
 # The following bit of eval-magic is necessary to make this work on
 # perls < 5.009005.
-use vars qw/$AttrList/;
+our $AttrList;
 BEGIN {
   if ($] > 5.009004) {
     eval <<'NEWERPERL';
diff --git i/dist/Storable/Storable.pm w/dist/Storable/Storable.pm
index 5823b930b..fc3ae3d6f 100644
--- i/dist/Storable/Storable.pm
+++ w/dist/Storable/Storable.pm
@@ -20,9 +20,9 @@ package Storable; @ISA = qw(Exporter);
         file_magic read_magic
 );
 
-use vars qw($canonical $forgive_me $VERSION);
+our ($canonical, $forgive_me);
 
-$VERSION = '2.56_01';
+our $VERSION = '2.56_01';
 
 BEGIN {
     if (eval {
diff --git i/dist/Test/lib/Test.pm w/dist/Test/lib/Test.pm
index 3350517e6..0f9053f08 100644
--- i/dist/Test/lib/Test.pm
+++ w/dist/Test/lib/Test.pm
@@ -5,10 +5,9 @@ package Test;
 use strict;
 
 use Carp;
-use vars (qw($VERSION @ISA @EXPORT @EXPORT_OK $ntest $TestLevel), #public-ish
-          qw($TESTOUT $TESTERR %Program_Lines $told_about_diff
-             $ONFAIL %todo %history $planned @FAILDETAIL) #private-ish
-         );
+our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, $ntest, $TestLevel); #public-ish
+our ($TESTOUT, $TESTERR, %Program_Lines, $told_about_diff,
+     $ONFAIL, %todo, %history, $planned, @FAILDETAIL); #private-ish
 
 # In case a test is run in a persistent environment.
 sub _reset_globals {
diff --git i/dist/base/lib/base.pm w/dist/base/lib/base.pm
index 044d138c3..67a5f2e23 100644
--- i/dist/base/lib/base.pm
+++ w/dist/base/lib/base.pm
@@ -2,8 +2,7 @@ use 5.008;
 package base;
 
 use strict 'vars';
-use vars qw($VERSION);
-$VERSION = '2.23';
+our $VERSION = '2.23';
 $VERSION =~ tr/_//d;
 
 # simplest way to avoid indexing of the package: no package statement
diff --git i/dist/base/lib/fields.pm w/dist/base/lib/fields.pm
index c40978bd9..b9b17b1ad 100644
--- i/dist/base/lib/fields.pm
+++ w/dist/base/lib/fields.pm
@@ -10,9 +10,9 @@ unless( eval q{require warnings::register; warnings::register->import; 1} ) {
         Carp::carp(@_);
     }
 }
-use vars qw(%attr $VERSION);
+our %attr;
 
-$VERSION = '2.23';
+our $VERSION = '2.23';
 $VERSION =~ tr/_//d;
 
 # constant.pm is slow
diff --git i/ext/B/t/OptreeCheck.pm w/ext/B/t/OptreeCheck.pm
index a099a97ec..99fd5746f 100644
--- i/ext/B/t/OptreeCheck.pm
+++ w/ext/B/t/OptreeCheck.pm
@@ -2,7 +2,6 @@ package OptreeCheck;
 use parent 'Exporter';
 use strict;
 use warnings;
-use vars qw($TODO $Level $using_open);
 require "test.pl";
 
 our $VERSION = '0.13';
@@ -11,6 +10,7 @@ our $VERSION = '0.13';
 our @EXPORT = qw( checkOptree plan skip skip_all pass is like unlike
 		  require_ok runperl tempfile);
 
+our ($TODO, $Level, $using_open);
 
 # The hints flags will differ if ${^OPEN} is set.
 # The approach taken is to put the hints-with-open in the golden results, and
diff --git i/ext/ExtUtils-Miniperl/lib/ExtUtils/Miniperl.pm w/ext/ExtUtils-Miniperl/lib/ExtUtils/Miniperl.pm
index 61c66df7e..a3a1f5bb9 100644
--- i/ext/ExtUtils-Miniperl/lib/ExtUtils/Miniperl.pm
+++ w/ext/ExtUtils-Miniperl/lib/ExtUtils/Miniperl.pm
@@ -4,11 +4,9 @@ use strict;
 require Exporter;
 use ExtUtils::Embed 1.31, qw(xsi_header xsi_protos xsi_body);
 
-use vars qw($VERSION @ISA @EXPORT);
-
-@ISA = qw(Exporter);
-@EXPORT = qw(writemain);
-$VERSION = '1.05';
+our @ISA = qw(Exporter);
+our @EXPORT = qw(writemain);
+our $VERSION = '1.05';
 
 # blead will run this with miniperl, hence we can't use autodie or File::Temp
 my $temp;
diff --git i/ext/FileCache/lib/FileCache.pm w/ext/FileCache/lib/FileCache.pm
index 149e88133..75b88b475 100644
--- i/ext/FileCache/lib/FileCache.pm
+++ w/ext/FileCache/lib/FileCache.pm
@@ -91,8 +91,8 @@ no strict 'refs';
 # These are not C<my> for legacy reasons.
 # Previous versions requested the user set $cacheout_maxopen by hand.
 # Some authors fiddled with %saw to overcome the clobber on initial open.
-use vars qw(%saw $cacheout_maxopen);
-$cacheout_maxopen = 16;
+our %saw;
+our $cacheout_maxopen = 16;
 
 use parent 'Exporter';
 our @EXPORT = qw[cacheout cacheout_close];
diff --git i/ext/Pod-Html/lib/Pod/Html.pm w/ext/Pod-Html/lib/Pod/Html.pm
index cef329e1e..94107ff6d 100644
--- i/ext/Pod-Html/lib/Pod/Html.pm
+++ w/ext/Pod-Html/lib/Pod/Html.pm
@@ -2,11 +2,10 @@ package Pod::Html;
 use strict;
 require Exporter;
 
-use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
-$VERSION = 1.2201;
-@ISA = qw(Exporter);
-@EXPORT = qw(pod2html htmlify);
-@EXPORT_OK = qw(anchorify);
+our $VERSION = 1.2201;
+our @ISA = qw(Exporter);
+our @EXPORT = qw(pod2html htmlify);
+our @EXPORT_OK = qw(anchorify);
 
 use Carp;
 use Config;
diff --git i/ext/VMS-DCLsym/DCLsym.pm w/ext/VMS-DCLsym/DCLsym.pm
index b8c9c1bf3..740e4bf68 100644
--- i/ext/VMS-DCLsym/DCLsym.pm
+++ w/ext/VMS-DCLsym/DCLsym.pm
@@ -2,12 +2,11 @@ package VMS::DCLsym;
 
 use Carp;
 use DynaLoader;
-use vars qw( @ISA $VERSION );
 use strict;
 
 # Package globals
-@ISA = ( 'DynaLoader' );
-$VERSION = '1.06';
+our @ISA = ( 'DynaLoader' );
+our $VERSION = '1.06';
 my(%Locsyms) = ( ':ID' => 'LOCAL' );
 my(%Gblsyms) = ( ':ID' => 'GLOBAL');
 my $DoCache = 1;
diff --git i/ext/VMS-Stdio/Stdio.pm w/ext/VMS-Stdio/Stdio.pm
index 4d0599427..080026f3f 100644
--- i/ext/VMS-Stdio/Stdio.pm
+++ w/ext/VMS-Stdio/Stdio.pm
@@ -8,23 +8,22 @@
 package VMS::Stdio;
 
 require 5.002;
-use vars qw( $VERSION @EXPORT @EXPORT_OK %EXPORT_TAGS @ISA );
 use Carp '&croak';
 use DynaLoader ();
 use Exporter ();
- 
-$VERSION = '2.41';
-@ISA = qw( Exporter DynaLoader IO::File );
-@EXPORT = qw( &O_APPEND &O_CREAT &O_EXCL  &O_NDELAY &O_NOWAIT
-              &O_RDONLY &O_RDWR  &O_TRUNC &O_WRONLY );
-@EXPORT_OK = qw( &binmode &flush &getname &remove &rewind &sync &setdef &tmpnam
-                 &vmsopen &vmssysopen &waitfh &writeof );
-%EXPORT_TAGS = ( CONSTANTS => [ qw( &O_APPEND &O_CREAT &O_EXCL  &O_NDELAY
-                                    &O_NOWAIT &O_RDONLY &O_RDWR &O_TRUNC
-                                    &O_WRONLY ) ],
-                 FUNCTIONS => [ qw( &binmode &flush &getname &remove &rewind
-                                    &setdef &sync &tmpnam &vmsopen &vmssysopen
-                                    &waitfh &writeof ) ] );
+
+our $VERSION = '2.41';
+our @ISA = qw( Exporter DynaLoader IO::File );
+our @EXPORT = qw( &O_APPEND &O_CREAT &O_EXCL  &O_NDELAY &O_NOWAIT
+                  &O_RDONLY &O_RDWR  &O_TRUNC &O_WRONLY );
+our @EXPORT_OK = qw( &binmode &flush &getname &remove &rewind &sync &setdef
+                     &tmpnam &vmsopen &vmssysopen &waitfh &writeof );
+our %EXPORT_TAGS = (
+    CONSTANTS => [ qw( &O_APPEND &O_CREAT &O_EXCL &O_NDELAY &O_NOWAIT
+                       &O_RDONLY &O_RDWR &O_TRUNC &O_WRONLY ) ],
+    FUNCTIONS => [ qw( &binmode &flush &getname &remove &rewind &setdef
+                       &sync &tmpnam &vmsopen &vmssysopen &waitfh &writeof ) ]
+);
 
 bootstrap VMS::Stdio $VERSION;
 
diff --git i/ext/XS-APItest/APItest.pm w/ext/XS-APItest/APItest.pm
index 875579e20..a532edc7a 100644
--- i/ext/XS-APItest/APItest.pm
+++ w/ext/XS-APItest/APItest.pm
@@ -54,8 +54,9 @@ sub import {
     }
 }
 
-use vars '$WARNINGS_ON_BOOTSTRAP';
-use vars map "\$${_}_called_PP", qw(BEGIN UNITCHECK CHECK INIT END);
+our $WARNINGS_ON_BOOTSTRAP;
+our ($BEGIN_called_PP, $UNITCHECK_called_PP, $CHECK_called_PP,
+     $INIT_called_PP $END_called_PP);
 
 BEGIN {
     # This is arguably a hack, but it disposes of the UNITCHECK block without
diff --git i/ext/XS-Typemap/Typemap.pm w/ext/XS-Typemap/Typemap.pm
index a1ae0211d..f38b3f57a 100644
--- i/ext/XS-Typemap/Typemap.pm
+++ w/ext/XS-Typemap/Typemap.pm
@@ -34,11 +34,9 @@ to the test script.
 use parent qw/ Exporter /;
 require XSLoader;
 
-use vars qw/ $VERSION @EXPORT /;
+our $VERSION = '0.14';
 
-$VERSION = '0.14';
-
-@EXPORT = (qw/
+our @EXPORT = (qw/
 	   T_SV
 	   T_SVREF
 	   T_SVREF_REFCOUNT_FIXED
diff --git i/haiku/Haiku/Haiku.pm w/haiku/Haiku/Haiku.pm
index 205df732a..fcc521144 100644
--- i/haiku/Haiku/Haiku.pm
+++ w/haiku/Haiku/Haiku.pm
@@ -2,19 +2,18 @@ package Haiku;
 
 BEGIN {
     use strict;
-    use vars qw|$VERSION $XS_VERSION @ISA @EXPORT @EXPORT_OK|;
 
     require Exporter;
     require DynaLoader;
 
-    @ISA = qw|Exporter DynaLoader|;
-    $VERSION = '0.35';
-    $XS_VERSION = $VERSION;
+    our @ISA = qw|Exporter DynaLoader|;
+    our $VERSION = '0.35';
+    our $XS_VERSION = $VERSION;
     $VERSION = eval $VERSION;
 
-    @EXPORT = qw(
+    our @EXPORT = qw(
     );
-    @EXPORT_OK = qw(
+    our @EXPORT_OK = qw(
     );
 }
 
diff --git i/lib/B/Deparse.pm w/lib/B/Deparse.pm
index 9879d678b..716b54798 100644
--- i/lib/B/Deparse.pm
+++ w/lib/B/Deparse.pm
@@ -8,6 +8,11 @@
 # but essentially none of his code remains.
 
 package B::Deparse;
+
+use strict;
+use warnings ();
+require feature;
+
 use Carp;
 use B qw(class main_root main_start main_cv svref_2object opnumber perlstring
 	 OPf_WANT OPf_WANT_VOID OPf_WANT_SCALAR OPf_WANT_LIST
@@ -46,11 +51,8 @@ use B qw(class main_root main_start main_cv svref_2object opnumber perlstring
         MDEREF_SHIFT
     );
 
-$VERSION = '1.37';
-use strict;
-use vars qw/$AUTOLOAD/;
-use warnings ();
-require feature;
+our $VERSION = '1.37';
+our $AUTOLOAD;
 
 BEGIN {
     # List version-specific constants here.
diff --git i/lib/Config/Extensions.pm w/lib/Config/Extensions.pm
index 82fb9e09e..e0d082a02 100644
--- i/lib/Config/Extensions.pm
+++ w/lib/Config/Extensions.pm
@@ -1,12 +1,12 @@
 package Config::Extensions;
 use strict;
-use vars qw(%Extensions $VERSION @ISA @EXPORT_OK);
 use Config;
 require Exporter;
 
-$VERSION = '0.01';
-@ISA = 'Exporter';
-@EXPORT_OK = '%Extensions';
+our %Extensions;
+our $VERSION = '0.01';
+our @ISA = 'Exporter';
+our @EXPORT_OK = '%Extensions';
 
 foreach my $type (qw(static dynamic nonxs)) {
     foreach (split /\s+/, $Config{$type . '_ext'}) {
diff --git i/lib/ExtUtils/Embed.pm w/lib/ExtUtils/Embed.pm
index c5e42e123..609359e25 100644
--- i/lib/ExtUtils/Embed.pm
+++ w/lib/ExtUtils/Embed.pm
@@ -3,22 +3,19 @@ require Exporter;
 use Config;
 require File::Spec;
 
-use vars qw(@ISA @EXPORT $VERSION
-	    @Extensions $Verbose $lib_ext
-	    $opt_o $opt_s 
-	    );
 use strict;
 
 # This is not a dual-life module, so no need for development version numbers
-$VERSION = '1.33';
+our $VERSION = '1.33';
 
-@ISA = qw(Exporter);
-@EXPORT = qw(&xsinit &ldopts 
-	     &ccopts &ccflags &ccdlflags &perl_inc
-	     &xsi_header &xsi_protos &xsi_body);
+our @ISA = qw(Exporter);
+our @EXPORT = qw(&xsinit &ldopts
+                 &ccopts &ccflags &ccdlflags &perl_inc
+                 &xsi_header &xsi_protos &xsi_body);
 
-$Verbose = 0;
-$lib_ext = $Config{lib_ext} || '.a';
+our $Verbose = 0;
+our $lib_ext = $Config{lib_ext} || '.a';
+our ($opt_o, $opt_s);
 
 sub is_cmd { $0 eq '-e' }
 
diff --git i/lib/ExtUtils/XSSymSet.pm w/lib/ExtUtils/XSSymSet.pm
index 0dee12da9..374fa7e39 100644
--- i/lib/ExtUtils/XSSymSet.pm
+++ w/lib/ExtUtils/XSSymSet.pm
@@ -2,8 +2,8 @@ package ExtUtils::XSSymSet;
 
 use strict;
 use Config;
-use vars qw( $VERSION );
-$VERSION = '1.3';
+
+our $VERSION = '1.3';
 
 
 sub new { 
diff --git i/lib/File/stat.pm w/lib/File/stat.pm
index b631fbf87..83306cdd3 100644
--- i/lib/File/stat.pm
+++ w/lib/File/stat.pm
@@ -12,7 +12,7 @@ our(@EXPORT, @EXPORT_OK, %EXPORT_TAGS);
 
 our $VERSION = '1.07';
 
-my @fields;
+our @fields;
 BEGIN { 
     use Exporter   ();
     @EXPORT      = qw(stat lstat);
@@ -25,7 +25,6 @@ BEGIN {
     @EXPORT_OK   = ( @fields, "stat_cando" );
     %EXPORT_TAGS = ( FIELDS => [ @fields, @EXPORT ] );
 }
-use vars @fields;
 
 use Fcntl qw(S_IRUSR S_IWUSR S_IXUSR);
 
diff --git i/lib/Net/hostent.pm w/lib/Net/hostent.pm
index 3a2fc0138..5b0cf20bf 100644
--- i/lib/Net/hostent.pm
+++ w/lib/Net/hostent.pm
@@ -14,7 +14,6 @@ BEGIN {
 		   );
     %EXPORT_TAGS = ( FIELDS => [ @EXPORT_OK, @EXPORT ] );
 }
-use vars      @EXPORT_OK;
 
 # Class::Struct forbids use of @ISA
 sub import { goto &Exporter::import }
diff --git i/lib/Net/netent.pm w/lib/Net/netent.pm
index f7d32cb92..24590f77b 100644
--- i/lib/Net/netent.pm
+++ w/lib/Net/netent.pm
@@ -13,7 +13,6 @@ BEGIN {
 		   );
     %EXPORT_TAGS = ( FIELDS => [ @EXPORT_OK, @EXPORT ] );
 }
-use vars      @EXPORT_OK;
 
 # Class::Struct forbids use of @ISA
 sub import { goto &Exporter::import }
diff --git i/lib/Net/protoent.pm w/lib/Net/protoent.pm
index 2cbccad3c..d2bb700c5 100644
--- i/lib/Net/protoent.pm
+++ w/lib/Net/protoent.pm
@@ -10,7 +10,6 @@ BEGIN {
     @EXPORT_OK   = qw( $p_name @p_aliases $p_proto );
     %EXPORT_TAGS = ( FIELDS => [ @EXPORT_OK, @EXPORT ] );
 }
-use vars      @EXPORT_OK;
 
 # Class::Struct forbids use of @ISA
 sub import { goto &Exporter::import }
diff --git i/lib/Net/servent.pm w/lib/Net/servent.pm
index 78a168145..8fba84dd4 100644
--- i/lib/Net/servent.pm
+++ w/lib/Net/servent.pm
@@ -10,7 +10,6 @@ BEGIN {
     @EXPORT_OK   = qw( $s_name @s_aliases $s_port $s_proto );
     %EXPORT_TAGS = ( FIELDS => [ @EXPORT_OK, @EXPORT ] );
 }
-use vars      @EXPORT_OK;
 
 # Class::Struct forbids use of @ISA
 sub import { goto &Exporter::import }
diff --git i/lib/Tie/Array.pm w/lib/Tie/Array.pm
index e0516a2f3..a55363acf 100644
--- i/lib/Tie/Array.pm
+++ w/lib/Tie/Array.pm
@@ -83,8 +83,7 @@ sub DELETE {
 }
 
 package Tie::StdArray;
-use vars qw(@ISA);
-@ISA = 'Tie::Array';
+our @ISA = 'Tie::Array';
 
 sub TIEARRAY  { bless [], $_[0] }
 sub FETCHSIZE { scalar @{$_[0]} }
diff --git i/lib/Tie/StdHandle.pm w/lib/Tie/StdHandle.pm
index 0c58b706e..55819df92 100644
--- i/lib/Tie/StdHandle.pm
+++ w/lib/Tie/StdHandle.pm
@@ -3,9 +3,9 @@ package Tie::StdHandle;
 use strict;
 
 use Tie::Handle;
-use vars qw(@ISA $VERSION);
-@ISA = 'Tie::Handle';
-$VERSION = '4.4';
+
+our @ISA = 'Tie::Handle';
+our $VERSION = '4.4';
 
 =head1 NAME
 
diff --git i/lib/Time/gmtime.pm w/lib/Time/gmtime.pm
index eb5b371a0..67082c964 100644
--- i/lib/Time/gmtime.pm
+++ w/lib/Time/gmtime.pm
@@ -17,7 +17,6 @@ BEGIN {
     %EXPORT_TAGS = ( FIELDS => [ @EXPORT_OK, @EXPORT ] );
     $VERSION     = 1.03;
 }
-use vars      @EXPORT_OK;
 
 sub populate (@) {
     return unless @_;
diff --git i/lib/Time/localtime.pm w/lib/Time/localtime.pm
index c3d9fb360..260cec40a 100644
--- i/lib/Time/localtime.pm
+++ w/lib/Time/localtime.pm
@@ -17,7 +17,6 @@ BEGIN {
     %EXPORT_TAGS = ( FIELDS => [ @EXPORT_OK, @EXPORT ] );
     $VERSION     = 1.02;
 }
-use vars      @EXPORT_OK;
 
 sub populate (@) {
     return unless @_;
diff --git i/lib/User/grent.pm w/lib/User/grent.pm
index ce6ee5ea4..9c696b70c 100644
--- i/lib/User/grent.pm
+++ w/lib/User/grent.pm
@@ -10,7 +10,6 @@ BEGIN {
     @EXPORT_OK   = qw($gr_name $gr_gid $gr_passwd $gr_mem @gr_members);
     %EXPORT_TAGS = ( FIELDS => [ @EXPORT_OK, @EXPORT ] );
 }
-use vars      @EXPORT_OK;
 
 # Class::Struct forbids use of @ISA
 sub import { goto &Exporter::import }
diff --git i/lib/User/pwent.pm w/lib/User/pwent.pm
index 91d23bd3f..fdb21a0a3 100644
--- i/lib/User/pwent.pm
+++ w/lib/User/pwent.pm
@@ -29,7 +29,9 @@ BEGIN {
         ALL    => [ @EXPORT, @EXPORT_OK ],
     );
 }
-use vars grep /^\$pw_/, @EXPORT_OK;
+our ($pw_name, $pw_passwd, $pw_uid, $pw_gid, $pw_gecos, $pw_dir, $pw_shell,
+     $pw_expire, $pw_change, $pw_class, $pw_age, $pw_quota, $pw_comment,
+     $pw_expire);
 
 #
 # XXX: these mean somebody hacked this module's source
diff --git i/lib/blib.pm w/lib/blib.pm
index b3ee3202b..444206418 100644
--- i/lib/blib.pm
+++ w/lib/blib.pm
@@ -39,9 +39,8 @@ Nick Ing-Simmons nik@tiuk.ti.com
 use Cwd;
 use File::Spec;
 
-use vars qw($VERSION $Verbose);
-$VERSION = '1.06';
-$Verbose = 0;
+our $VERSION = '1.06';
+our $Verbose = 0;
 
 sub import
 {
diff --git i/lib/perl5db/t/MyModule.pm w/lib/perl5db/t/MyModule.pm
index 6a72fac48..7af0f8fef 100644
--- i/lib/perl5db/t/MyModule.pm
+++ w/lib/perl5db/t/MyModule.pm
@@ -3,9 +3,7 @@ package MyModule;
 use strict;
 use warnings;
 
-use vars qw($var);
-
-$var = "Bar";
+our $var = "Bar";
 
 sub function
 {
diff --git i/symbian/ext/Moped/Msg/Msg.pm w/symbian/ext/Moped/Msg/Msg.pm
index e1aaef834..cd788ab31 100644
--- i/symbian/ext/Moped/Msg/Msg.pm
+++ w/symbian/ext/Moped/Msg/Msg.pm
@@ -1,9 +1,8 @@
 package Moped::Msg;
 use strict;
-use vars qw(@ISA $VERSION);
 require DynaLoader;
-@ISA = qw(DynaLoader);
-$VERSION = '0.01';
+our @ISA = qw(DynaLoader);
+our $VERSION = '0.01';
 bootstrap Moped::Msg;
 1;
 
