The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Changelog 018
MANIFEST 210
META.json 3633
META.yml 64
Makefile.PL 11
README 33
V.pm 4153
t/10_base.t 47
t/20_plv510.t 560
t/20_plv56.t 079
t/21_plv518.t 1020
t/21_plv58.t 086
t/22_plv510.t 061
t/23_plv512.t 086
t/24_plv514.t 088
t/25_plv516.t 089
t/25_plv5162.t 0181
t/26_plv518.t 0115
t/26_plv5182.t 0115
t/27_plv5200.t 0120
20 files changed (This is a version diff) 2511149
@@ -1,3 +1,21 @@
+0.23	- 11 Feb 2015, H.Merijn Brand
+    * Update copyright to 2015
+    * Add summary tests
+    * Remove perl recommendation from META as it breaks cpan clients
+    * Move repo to github
+
+0.22	- 02 Aug 2014, H.Merijn Brand
+    * Fixed parsing locally applied patches (passed only first line)
+    * Fixed parsing compile-time options (passed only first line)
+    * Some settings run unquoted to end-of-line
+    * Not all key-value pairs were separated by ',' in older perl
+    * Small typo in test comment
+
+0.21	- 01 Aug 2014, H.Merijn Brand
+    * Add tests for each major distribution since 5.6.2
+    * Better detect build times
+    * Sync with 5.20.1
+
 0.20	- 19 Feb 2014, H.Merijn Brand
     * Update copyright to 2014
     * Typo fix in comment (RT#92469)
@@ -6,8 +6,16 @@ V.pm
 t/00_pod.t
 t/01_pod.t
 t/10_base.t
-t/20_plv510.t
-t/21_plv518.t
+t/20_plv56.t
+t/21_plv58.t
+t/22_plv510.t
+t/23_plv512.t
+t/24_plv514.t
+t/25_plv516.t
+t/25_plv5162.t
+t/26_plv518.t
+t/26_plv5182.t
+t/27_plv5200.t
 examples/show-v.pl
 META.yml                                 Module YAML meta-data (added by MakeMaker)
 META.json                                Module JSON meta-data (added by MakeMaker)
@@ -1,61 +1,58 @@
 {
-   "name" : "Config-Perl-V",
-   "provides" : {
-      "Config::Perl::V" : {
-         "file" : "V.pm",
-         "version" : "0.20"
-      }
-   },
-   "author" : [
-      "H.Merijn Brand <h.m.brand@xs4all.nl>"
-   ],
-   "resources" : {
-      "license" : [
-         "http://dev.perl.org/licenses/"
-      ],
-      "repository" : {
-         "web" : "http://repo.or.cz/w/Config-Perl-V.git",
-         "type" : "git",
-         "url" : "http://repo.or.cz/r/Config-Perl-V.git"
-      }
-   },
+   "abstract" : "Structured data retrieval of perl -V output",
    "meta-spec" : {
       "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
       "version" : "2"
    },
-   "abstract" : "Structured data retrieval of perl -V output",
    "prereqs" : {
       "configure" : {
          "requires" : {
             "ExtUtils::MakeMaker" : "0"
          }
       },
-      "build" : {
+      "runtime" : {
          "requires" : {
-            "perl" : "5.006"
+            "perl" : "5.006",
+            "Config" : "0"
          }
       },
-      "test" : {
+      "build" : {
          "requires" : {
-            "Test::NoWarnings" : "0",
-            "Test::More" : "0"
+            "perl" : "5.006"
          }
       },
-      "runtime" : {
+      "test" : {
          "requires" : {
-            "perl" : "5.006",
-            "Config" : "0"
-         },
-         "recommends" : {
-            "perl" : "5.016003"
+            "Test::More" : "0",
+            "Test::NoWarnings" : "0"
          }
       }
    },
-   "version" : "0.20",
-   "generated_by" : "Author",
-   "dynamic_config" : 1,
    "release_status" : "stable",
+   "dynamic_config" : 1,
+   "version" : "0.23",
+   "provides" : {
+      "Config::Perl::V" : {
+         "version" : "0.23",
+         "file" : "V.pm"
+      }
+   },
+   "name" : "Config-Perl-V",
+   "resources" : {
+      "repository" : {
+         "url" : "https://github.com/Tux/Config-Perl-V",
+         "web" : "https://github.com/Tux/Config-Perl-V",
+         "type" : "git"
+      },
+      "license" : [
+         "http://dev.perl.org/licenses/"
+      ]
+   },
+   "author" : [
+      "H.Merijn Brand <h.m.brand@xs4all.nl>"
+   ],
    "license" : [
       "perl_5"
-   ]
+   ],
+   "generated_by" : "Author"
 }
@@ -7,7 +7,7 @@ build_requires:
 configure_requires: 
   ExtUtils::MakeMaker: 0
 dynamic_config: 1
-generated_by: Author, CPAN::Meta::Converter version 2.133380
+generated_by: Author, CPAN::Meta::Converter version 2.143240
 license: perl
 meta-spec: 
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -16,9 +16,7 @@ name: Config-Perl-V
 provides: 
   Config::Perl::V: 
     file: V.pm
-    version: '0.20'
-recommends: 
-  perl: '5.016003'
+    version: '0.23'
 requires: 
   Config: 0
   Test::More: 0
@@ -26,5 +24,5 @@ requires:
   perl: '5.006'
 resources: 
   license: http://dev.perl.org/licenses/
-  repository: http://repo.or.cz/r/Config-Perl-V.git
-version: '0.20'
+  repository: https://github.com/Tux/Config-Perl-V
+version: '0.23'
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright PROCURA B.V. (c) 2009-2014 H.Merijn Brand
+# Copyright PROCURA B.V. (c) 2009-2015 H.Merijn Brand
 
 use strict;
 
@@ -26,19 +26,19 @@ SOURCE CODE
     http://repo.or.cz/w/Config-Perl-V.git
     Feel free to clone your own copy:
 
-     $ git clone http://repo.or.cz/r/Config-Perl-V.git Config-Perl-V
+     $ git clone https://github.com/Tux/Config-Perl-V Config-Perl-V
 
     or get it as a tgz:
 
      $ wget --output-document=Config-Perl-V.tgz \
-	       'http://repo.or.cz/w/Config-Perl-V.git?a=snapshot;sf=tgz'
+	   https://github.com/Tux/Config-Perl-V/archive/master.tar.gz
 
 CHANGES
 
     See Changelog
 
 COPYRIGHT AND LICENSE
-    Copyright (C) 2009-2011 H.Merijn Brand
+    Copyright (C) 2009-2015 H.Merijn Brand
 
     This library is free software; you can redistribute it and/or modify
     it under the same terms as Perl itself. 
@@ -8,7 +8,7 @@ use warnings;
 use Config;
 use Exporter;
 use vars qw($VERSION @ISA @EXPORT_OK %EXPORT_TAGS);
-$VERSION     = "0.20";
+$VERSION     = "0.23";
 @ISA         = ("Exporter");
 @EXPORT_OK   = qw( plv2hash summary myconfig signature );
 %EXPORT_TAGS = (
@@ -29,21 +29,21 @@ $VERSION     = "0.20";
 my %BTD = map { $_ => 0 } qw(
 
     DEBUGGING
-    NO_MATHOMS
     NO_HASH_SEED
+    NO_MATHOMS
     NO_TAINT_SUPPORT
     PERL_BOOL_AS_CHAR
     PERL_DISABLE_PMC
     PERL_DONT_CREATE_GVSV
     PERL_EXTERNAL_GLOB
-    PERL_HASH_FUNC_SIPHASH
-    PERL_HASH_FUNC_SDBM
     PERL_HASH_FUNC_DJB2
-    PERL_HASH_FUNC_SUPERFAST
     PERL_HASH_FUNC_MURMUR3
     PERL_HASH_FUNC_ONE_AT_A_TIME
     PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
     PERL_HASH_FUNC_ONE_AT_A_TIME_OLD
+    PERL_HASH_FUNC_SDBM
+    PERL_HASH_FUNC_SIPHASH
+    PERL_HASH_FUNC_SUPERFAST
     PERL_IS_MINIPERL
     PERL_MALLOC_WRAP
     PERL_MEM_LOG
@@ -78,12 +78,13 @@ my %BTD = map { $_ => 0 } qw(
     HAVE_INTERP_INTERN
     MULTIPLICITY
     MYMALLOC
-    PERLIO_LAYERS
     PERL_DEBUG_READONLY_COW
     PERL_DEBUG_READONLY_OPS
     PERL_GLOBAL_STRUCT
+    PERL_GLOBAL_STRUCT_PRIVATE
     PERL_IMPLICIT_CONTEXT
     PERL_IMPLICIT_SYS
+    PERLIO_LAYERS
     PERL_MAD
     PERL_MICRO
     PERL_NEED_APPCTX
@@ -102,6 +103,7 @@ my %BTD = map { $_ => 0 } qw(
     USE_LARGE_FILES
     USE_LOCALE_COLLATE
     USE_LOCALE_NUMERIC
+    USE_LOCALE_TIME
     USE_LONG_DOUBLE
     USE_PERLIO
     USE_REENTRANT_API
@@ -229,39 +231,60 @@ sub _make_derived
 sub plv2hash
 {
     my %config;
-    for (split m/\n+/ => join "\n", @_) {
-
-	if (s/^Summary of my\s+(\S+)\s+\(\s*(.*?)\s*\)//) {
-	    $config{"package"} = $1;
-	    my $rev = $2;
-	    $rev =~ s/^ revision \s+ (\S+) \s*//x and $config{revision} = $1;
-	    $rev and $config{version_patchlevel_string} = $rev;
-	    my ($rel) = $config{package} =~ m{perl(\d)};
-	    my ($vers, $subvers) = $rev =~ m{version\s+(\d+)\s+subversion\s+(\d+)};
-	    defined $vers && defined $subvers && defined $rel and
-		$config{version} = "$rel.$vers.$subvers";
-	    next;
-	    }
 
-	if (s/^\s+(Snapshot of:)\s+(\S+)//) {
-	    $config{git_commit_id_title} = $1;
-	    $config{git_commit_id}       = $2;
-	    next;
-	    }
+    my $pv = join "\n" => @_;
+
+    if ($pv =~ m/^Summary of my\s+(\S+)\s+\(\s*(.*?)\s*\)/m) {
+	$config{"package"} = $1;
+	my $rev = $2;
+	$rev =~ s/^ revision \s+ (\S+) \s*//x and $config{revision} = $1;
+	$rev and $config{version_patchlevel_string} = $rev;
+	my ($rel) = $config{"package"} =~ m{perl(\d)};
+	my ($vers, $subvers) = $rev =~ m{version\s+(\d+)\s+subversion\s+(\d+)};
+	defined $vers && defined $subvers && defined $rel and
+	    $config{version} = "$rel.$vers.$subvers";
+	}
+
+    if ($pv =~ m/^\s+(Snapshot of:)\s+(\S+)/) {
+	$config{git_commit_id_title} = $1;
+	$config{git_commit_id}       = $2;
+	}
 
-	my %kv = m/\G,?\s*([^=]+)=('[^']+?'|\S+)/gc;
+    if (my %kv = ($pv =~ m{\b
+	    (\w+)		# key
+	    \s*=		# assign
+	    ( '\s*[^']*?\s*'	# quoted value
+	    | \S+[^=]*?\s*\n	# unquoted running till end of line
+	    | \S+		# unquoted value
+	    | \s*\n		# empty
+	    )
+	    (?:,?\s+|\s*\n)?	# separator (5.8.x reports did not have a ','
+	    }gx)) {		# between every kv pair
 
 	while (my ($k, $v) = each %kv) {
 	    $k =~ s/\s+$//;
+	    $v =~ s/\s*\n\z//;
 	    $v =~ s/,$//;
 	    $v =~ m/^'(.*)'$/ and $v = $1;
-	    $v =~ s/^\s+//;
 	    $v =~ s/\s+$//;
 	    $config{$k} = $v;
 	    }
 	}
+
     my $build = { %empty_build };
+
+    $pv =~ m{^\s+Compiled at\s+(.*)}m
+	and $build->{stamp}   = $1;
+    $pv =~ m{^\s+Locally applied patches:(?:\s+|\n)(.*?)(?:[\s\n]+Buil[td] under)}ms
+	and $build->{patches} = [ split m/\n+\s*/, $1 ];
+    $pv =~ m{^\s+Compile-time options:(?:\s+|\n)(.*?)(?:[\s\n]+(?:Locally applied|Buil[td] under))}ms
+	and map { $build->{options}{$_} = 1 } split m/\s+|\n/ => $1;
+
     $build->{osname} = $config{osname};
+    $pv =~ m{^\s+Built under\s+(.*)}m
+	and $build->{osname}  = $1;
+    $config{osname} ||= $build->{osname};
+
     return _make_derived ({
 	build		=> $build,
 	environment	=> {},
@@ -322,20 +345,9 @@ sub myconfig
 	}
     else {
 	#y $pv = qx[$^X -e"sub Config::myconfig{};" -V];
-	my $pv = qx[$^X -V];
-	   $pv =~ s{.*?\n\n}{}s;
-	   $pv =~ s{\n(?:  \s+|\t\s*)}{\0}g;
-
-	# print STDERR $pv;
-
-	$pv =~ m{^\s+Built under\s+(.*)}m
-	    and $build->{osname}  = $1;
-	$pv =~ m{^\s+Compiled at\s+(.*)}m
-	    and $build->{stamp}   = $1;
-	$pv =~ m{^\s+Locally applied patches:(?:\s+|\0)(.*)}m
-	    and $build->{patches} = [ split m/\0+/, $1 ];
-	$pv =~ m{^\s+Compile-time options:(?:\s+|\0)(.*)}m
-	    and map { $build->{options}{$_} = 1 } split m/\s+|\0/ => $1;
+	my $cnf = plv2hash (qx[$^X -V]);
+
+	$build->{$_} = $cnf->{build}{$_} for qw( osname stamp patches options );
 	}
 
     my @KEYS = keys %ENV;
@@ -522,7 +534,7 @@ H.Merijn Brand <h.m.brand@xs4all.nl>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (C) 2009-2014 H.Merijn Brand
+Copyright (C) 2009-2015 H.Merijn Brand
 
 This library is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself.
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN {
     use Test::More;
-    my $tests = 9;
+    my $tests = 12;
     unless ($ENV{PERL_CORE}) {
 	require Test::NoWarnings;
 	Test::NoWarnings->import ();
@@ -18,11 +18,14 @@ BEGIN {
     }
 
 ok (my $conf = Config::Perl::V::myconfig,	"Read config");
-for (qw( build environment config inc )) {
-    ok (exists $conf->{build},			"Has build entry");
-    }
+ok (exists $conf->{$_},	"Has $_ entry") for qw( build environment config inc );
 is (lc $conf->{build}{osname}, lc $conf->{config}{osname}, "osname");
 
+# Test summary
+ok (my $info1 = Config::Perl::V::summary ($conf), "Get a summary for \$conf");
+ok (my $info2 = Config::Perl::V::summary,         "Get a summary for \$^X");
+is_deeply ($info1, $info2, "Info should match");
+
 SKIP: {
     # Test that the code that shells out to perl -V and parses the output
     # gives the same results as the code that calls Config::* routines directly.
@@ -1,56 +0,0 @@
-#!/pro/bin/perl
-
-use strict;
-use warnings;
-
-BEGIN {
-    use Test::More;
-    my $tests = 8;
-    unless ($ENV{PERL_CORE}) {
-	require Test::NoWarnings;
-	Test::NoWarnings->import ();
-	$tests++;
-	}
-
-    plan tests => $tests;
-    }
-
-use Config::Perl::V;
-
-ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
-ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
-
-is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
-is ($conf->{build}{stamp}, 0, "No build time known");
-is ($conf->{config}{version}, "5.10.0", "reconstructed \%Config{version}");
-
-__END__
-Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
-  Platform:
-    osname=linux, osvers=2.6.22.13-0.3-default, archname=i686-linux-64int
-    uname='linux nb09 2.6.22.13-0.3-default #1 smp 20071119 15:02:58 utc i686 i686 i386 gnulinux '
-    config_args='-Duse64bitint -des'
-    hint=recommended, useposix=true, d_sigaction=define
-    useithreads=undef, usemultiplicity=undef
-    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
-    use64bitint=define, use64bitall=undef, uselongdouble=undef
-    usemymalloc=n, bincompat5005=undef
-  Compiler:
-    cc='cc', ccflags ='-fno-strict-aliasing -pipe -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
-    optimize='-O2 -g',
-    cppflags='-fno-strict-aliasing -pipe -I/pro/local/include'
-    ccversion='', gccversion='4.2.1 (SUSE Linux)', gccosandvers=''
-    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
-    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
-    ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
-    alignbytes=4, prototype=define
-  Linker and Libraries:
-    ld='cc', ldflags ='-L/pro/local/lib'
-    libpth=/pro/local/lib /lib /usr/lib /usr/local/lib
-    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc
-    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
-    libc=/lib/libc-2.6.1.so, so=so, useshrplib=false, libperl=libperl.a
-    gnulibc_version='2.6.1'
-  Dynamic Linking:
-    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
-    cccdlflags='-fPIC', lddlflags='-shared -O2 -L/pro/local/lib'
@@ -0,0 +1,79 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 92;
+    unless ($ENV{PERL_CORE}) {
+	require Test::NoWarnings;
+	Test::NoWarnings->import ();
+	$tests++;
+	}
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V;
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, "Mar 23 2010 17:34:56", "Build time");
+is ($conf->{config}{"package"}, "perl5", "reconstructed \%Config{package}");
+is ($conf->{config}{version}, "5.6.2", "reconstructed \%Config{version}");
+
+my $opt = Config::Perl::V::plv2hash ("")->{build}{options};
+foreach my $o (sort qw(
+	DEBUGGING USE_64_BIT_INT USE_LARGE_FILES
+	)) {
+    is ($conf->{build}{options}{$o}, 1, "Runtime option $o set");
+    delete $opt->{$o};
+    }
+foreach my $o (sort keys %$opt) {
+    is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
+    }
+
+__END__
+Summary of my perl5 (revision 5.0 version 6 subversion 2) configuration:
+  Platform:
+    osname=linux, osvers=2.6.31.12-0.2-default, archname=i686-linux-64int-perlio
+    uname='linux nb09 2.6.31.12-0.2-default #1 smp 2010-03-16 21:25:39 +0100 i686 i686 i386 gnulinux '
+    config_args='-Dusedevel -Duse64bitint -Duseperlio -des -Dusedevel -Uinstallusrbinperl -Dprefix=/media/Tux/perls'
+    hint=recommended, useposix=true, d_sigaction=define
+    usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
+    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
+    use64bitint=define use64bitall=undef uselongdouble=undef
+  Compiler:
+    cc='cc', ccflags ='-DDEBUGGING -fno-strict-aliasing -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
+    optimize='-O2',
+    cppflags='-DDEBUGGING -fno-strict-aliasing -I/pro/local/include'
+    ccversion='', gccversion='4.4.1 [gcc-4_4-branch revision 150839]', gccosandvers=''
+    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
+    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
+    ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
+    alignbytes=4, usemymalloc=n, prototype=define
+  Linker and Libraries:
+    ld='cc', ldflags ='-L/pro/local/lib'
+    libpth=/pro/local/lib /lib /usr/lib /usr/local/lib
+    libs=-lnsl -lgdbm -ldb -ldl -lm -lc -lcrypt -lutil
+    perllibs=-lnsl -ldl -lm -lc -lcrypt -lutil
+    libc=/lib/libc-2.10.1.so, so=so, useshrplib=false, libperl=libperl.a
+  Dynamic Linking:
+    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
+    cccdlflags='-fpic', lddlflags='-shared -L/pro/local/lib'
+
+
+Characteristics of this binary (from libperl): 
+  Compile-time options: DEBUGGING USE_64_BIT_INT USE_LARGE_FILES
+  Built under linux
+  Compiled at Mar 23 2010 17:34:56
+  @INC:
+    /media/Tux/perls/lib/5.6.2/i686-linux-64int-perlio
+    /media/Tux/perls/lib/5.6.2
+    /media/Tux/perls/lib/site_perl/5.6.2/i686-linux-64int-perlio
+    /media/Tux/perls/lib/site_perl/5.6.2
+    /media/Tux/perls/lib/site_perl
+    .
@@ -1,102 +0,0 @@
-#!/pro/bin/perl
-
-use strict;
-use warnings;
-
-BEGIN {
-    use Test::More;
-    my $tests = 35;
-    unless ($ENV{PERL_CORE}) {
-	require Test::NoWarnings;
-	Test::NoWarnings->import ();
-	$tests++;
-	}
-
-    plan tests => $tests;
-    }
-
-use Config::Perl::V;
-
-ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
-ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
-
-is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
-is ($conf->{build}{stamp}, 0, "No build time known");
-is ($conf->{config}{version}, "5.18.0", "reconstructed \$Config{version}");
-
-# Some random checks
-is ($conf->{build}{options}{$_}, 0, "Runtime option $_") for qw(
-    DEBUG_LEAKING_SCALARS NO_HASH_SEED PERL_MEM_LOG_STDERR PERL_MEM_LOG_ENV
-    PERL_MEM_LOG_TIMESTAMP PERL_MICRO USE_ATTRIBUTES_FOR_PERLIO VMS_DO_SOCKETS );
-
-my %check = (
-    alignbytes      => 4,
-    api_version     => 18,
-    bincompat5005   => "undef",
-    byteorder       => 12345678,
-    cc              => "cc",
-    cccdlflags      => "-fPIC",
-    ccdlflags       => "-Wl,-E",
-    config_args     => "-Duse64bitint -Duselongdouble -des",
-    gccversion      => "4.7.2 20130108 [gcc-4_7-branch revision 195012]",
-    gnulibc_version => "2.17",
-    ivsize          => 8,
-    ivtype          => "long long",
-    ld              => "cc",
-    lddlflags       => "-shared -O3 -L/pro/local/lib -fstack-protector",
-    ldflags         => "-L/pro/local/lib -fstack-protector",
-    libc            => "/lib/libc-2.17.so",
-    lseektype       => "off_t",
-    osvers          => "3.7.10-1.4-desktop",
-    use64bitint     => "define",
-    );
-is ($conf->{config}{$_}, $check{$_}, "reconstructed \$Config{$_}") for sort keys %check;
-
-__END__
-Summary of my perl5 (revision 5 version 18 subversion 0) configuration:
-   
-  Platform:
-    osname=linux, osvers=3.7.10-1.4-desktop, archname=i686-linux-64int-ld
-    uname='linux test 3.7.10-1.4-desktop #1 smp preempt fri apr 19 12:06:34 utc 2013 (8ef74f8) i686 i686 i386 gnulinux '
-    config_args='-Duse64bitint -Duselongdouble -des'
-    hint=recommended, useposix=true, d_sigaction=define
-    useithreads=undef, usemultiplicity=undef
-    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
-    use64bitint=define, use64bitall=undef, uselongdouble=define
-    usemymalloc=n, bincompat5005=undef
-  Compiler:
-    cc='cc', ccflags ='-fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
-    optimize='-O3',
-    cppflags='-fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include'
-    ccversion='', gccversion='4.7.2 20130108 [gcc-4_7-branch revision 195012]', gccosandvers=''
-    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
-    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
-    ivtype='long long', ivsize=8, nvtype='long double', nvsize=12, Off_t='off_t', lseeksize=8
-    alignbytes=4, prototype=define
-  Linker and Libraries:
-    ld='cc', ldflags ='-L/pro/local/lib -fstack-protector'
-    libpth=/pro/local/lib /lib /usr/lib /usr/local/lib
-    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
-    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
-    libc=/lib/libc-2.17.so, so=so, useshrplib=false, libperl=libperl.a
-    gnulibc_version='2.17'
-  Dynamic Linking:
-    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
-    cccdlflags='-fPIC', lddlflags='-shared -O3 -L/pro/local/lib -fstack-protector'
-
-
-Characteristics of this binary (from libperl): 
-  Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
-                        PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
-                        PERL_PRESERVE_IVUV PERL_SAWAMPERSAND USE_64_BIT_INT
-                        USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
-                        USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LONG_DOUBLE
-                        USE_PERLIO USE_PERL_ATOF
-  Built under linux
-  Compiled at May 18 2013 17:34:20
-  @INC:
-    /pro/lib/perl5/site_perl/5.18.0/i686-linux-64int-ld
-    /pro/lib/perl5/site_perl/5.18.0
-    /pro/lib/perl5/5.18.0/i686-linux-64int-ld
-    /pro/lib/perl5/5.18.0
-    .
@@ -0,0 +1,86 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 92;
+    unless ($ENV{PERL_CORE}) {
+	require Test::NoWarnings;
+	Test::NoWarnings->import ();
+	$tests++;
+	}
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V;
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, "Oct 21 2010 14:50:53", "Build time");
+is ($conf->{config}{version}, "5.8.9", "reconstructed \%Config{version}");
+is ($conf->{config}{usethreads}, "define", "This was a threaded perl");
+
+my $opt = Config::Perl::V::plv2hash ("")->{build}{options};
+foreach my $o (sort qw(
+	DEBUGGING MULTIPLICITY PERL_IMPLICIT_CONTEXT
+	PERL_MALLOC_WRAP THREADS_HAVE_PIDS USE_64_BIT_INT
+	USE_FAST_STDIO USE_ITHREADS USE_LARGE_FILES
+	USE_LONG_DOUBLE USE_PERLIO USE_REENTRANT_API
+	)) {
+    is ($conf->{build}{options}{$o}, 1, "Runtime option $o set");
+    delete $opt->{$o};
+    }
+foreach my $o (sort keys %$opt) {
+    is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
+    }
+
+__END__
+Summary of my perl5 (revision 5 version 8 subversion 9) configuration:
+  Platform:
+    osname=linux, osvers=2.6.34.7-0.4-desktop, archname=i686-linux-thread-multi-64int-ld
+    uname='linux tux09.procura.nl 2.6.34.7-0.4-desktop #1 smp preempt 2010-10-07 19:07:51 +0200 i686 i686 i386 gnulinux '
+    config_args='-Dusedevel -Dusethreads -Duseithreads -Duse64bitint -Duselongdouble -Duseperlio -des -Dusedevel -Uinstallusrbinperl -Dprefix=/media/Tux/perls-t'
+    hint=recommended, useposix=true, d_sigaction=define
+    usethreads=define use5005threads=undef useithreads=define usemultiplicity=define
+    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
+    use64bitint=define use64bitall=undef uselongdouble=define
+    usemymalloc=n, bincompat5005=undef
+  Compiler:
+    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -pipe -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
+    optimize='-O2',
+    cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -pipe -I/pro/local/include'
+    ccversion='', gccversion='4.5.0 20100604 [gcc-4_5-branch revision 160292]', gccosandvers=''
+    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
+    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
+    ivtype='long long', ivsize=8, nvtype='long double', nvsize=12, Off_t='off_t', lseeksize=8
+    alignbytes=4, prototype=define
+  Linker and Libraries:
+    ld='cc', ldflags ='-L/pro/local/lib'
+    libpth=/pro/local/lib /lib /usr/lib /usr/local/lib
+    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc
+    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
+    libc=/lib/libc-2.11.2.so, so=so, useshrplib=false, libperl=libperl.a
+    gnulibc_version='2.11.2'
+  Dynamic Linking:
+    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
+    cccdlflags='-fPIC', lddlflags='-shared -O2 -L/pro/local/lib'
+
+
+Characteristics of this binary (from libperl): 
+  Compile-time options: DEBUGGING MULTIPLICITY PERL_IMPLICIT_CONTEXT
+                        PERL_MALLOC_WRAP THREADS_HAVE_PIDS USE_64_BIT_INT
+                        USE_FAST_STDIO USE_ITHREADS USE_LARGE_FILES
+                        USE_LONG_DOUBLE USE_PERLIO USE_REENTRANT_API
+  Built under linux
+  Compiled at Oct 21 2010 14:50:53
+  @INC:
+    /media/Tux/perls-t/lib/5.8.9/i686-linux-thread-multi-64int-ld
+    /media/Tux/perls-t/lib/5.8.9
+    /media/Tux/perls-t/lib/site_perl/5.8.9/i686-linux-thread-multi-64int-ld
+    /media/Tux/perls-t/lib/site_perl/5.8.9
+    .
@@ -0,0 +1,61 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 91;
+    unless ($ENV{PERL_CORE}) {
+	require Test::NoWarnings;
+	Test::NoWarnings->import ();
+	$tests++;
+	}
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V;
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, 0, "No build time known");
+is ($conf->{config}{version}, "5.10.0", "reconstructed \%Config{version}");
+
+my $opt = Config::Perl::V::plv2hash ("")->{build}{options};
+foreach my $o (sort keys %$opt) {
+    is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
+    }
+
+__END__
+Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
+  Platform:
+    osname=linux, osvers=2.6.22.13-0.3-default, archname=i686-linux-64int
+    uname='linux nb09 2.6.22.13-0.3-default #1 smp 20071119 15:02:58 utc i686 i686 i386 gnulinux '
+    config_args='-Duse64bitint -des'
+    hint=recommended, useposix=true, d_sigaction=define
+    useithreads=undef, usemultiplicity=undef
+    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
+    use64bitint=define, use64bitall=undef, uselongdouble=undef
+    usemymalloc=n, bincompat5005=undef
+  Compiler:
+    cc='cc', ccflags ='-fno-strict-aliasing -pipe -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
+    optimize='-O2 -g',
+    cppflags='-fno-strict-aliasing -pipe -I/pro/local/include'
+    ccversion='', gccversion='4.2.1 (SUSE Linux)', gccosandvers=''
+    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
+    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
+    ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
+    alignbytes=4, prototype=define
+  Linker and Libraries:
+    ld='cc', ldflags ='-L/pro/local/lib'
+    libpth=/pro/local/lib /lib /usr/lib /usr/local/lib
+    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc
+    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
+    libc=/lib/libc-2.6.1.so, so=so, useshrplib=false, libperl=libperl.a
+    gnulibc_version='2.6.1'
+  Dynamic Linking:
+    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
+    cccdlflags='-fPIC', lddlflags='-shared -O2 -L/pro/local/lib'
@@ -0,0 +1,86 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 93;
+    unless ($ENV{PERL_CORE}) {
+	require Test::NoWarnings;
+	Test::NoWarnings->import ();
+	$tests++;
+	}
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V;
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, "Dec 20 2010 12:46:00", "Build time");
+is ($conf->{config}{version}, "5.12.2", "reconstructed \%Config{version}");
+is ($conf->{config}{gccversion}, "", "not built with gcc");
+is ($conf->{config}{ccversion}, "B3910B", "built with HP C-ANSI-C");
+
+my $opt = Config::Perl::V::plv2hash ("")->{build}{options};
+foreach my $o (sort qw(
+	PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP USE_64_BIT_ALL
+	USE_64_BIT_INT USE_LARGE_FILES USE_LONG_DOUBLE
+	USE_PERLIO USE_PERL_ATOF
+	)) {
+    is ($conf->{build}{options}{$o}, 1, "Runtime option $o set");
+    delete $opt->{$o};
+    }
+foreach my $o (sort keys %$opt) {
+    is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
+    }
+
+__END__
+Summary of my perl5 (revision 5 version 12 subversion 2) configuration:
+
+  Platform:
+    osname=hpux, osvers=11.31, archname=IA64.ARCHREV_0-LP64-ld
+    uname='hp-ux x2 b.11.31 u ia64 2977233888 unlimited-user license '
+    config_args='-Duse64bitall -Duselongdouble -des'
+    hint=recommended, useposix=true, d_sigaction=define
+    useithreads=undef, usemultiplicity=undef
+    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
+    use64bitint=define, use64bitall=define, uselongdouble=define
+    usemymalloc=n, bincompat5005=undef
+  Compiler:
+    cc='cc', ccflags =' -Ae -DPERL_DONT_CREATE_GVSV +Z -z -D_HPUX_SOURCE -Wl,+vnocompatwarnings +DD64 -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 ',
+    optimize='+O2 +Onolimit',
+    cppflags='-Aa -D__STDC_EXT__ -DPERL_DONT_CREATE_GVSV +Z -z -D_HPUX_SOURCE -Ae -DPERL_DONT_CREATE_GVSV +Z -z -D_HPUX_SOURCE -Wl,+vnocompatwarnings +DD64 -I/pro/local/include'
+    ccversion='B3910B', gccversion='', gccosandvers=''
+    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=87654321
+    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
+    ivtype='long', ivsize=8, nvtype='long double', nvsize=16, Off_t='off_t', lseeksize=8
+    alignbytes=16, prototype=define
+  Linker and Libraries:
+    ld='/usr/bin/ld', ldflags ='-L/pro/local/lib +DD64 -L/usr/lib/hpux64'
+    libpth=/pro/local/lib /usr/lib/hpux64 /lib /usr/lib /usr/ccs/lib /usr/local/lib
+    libs=-lcl -lpthread -lnsl -lnm -ldb -ldl -ldld -lm -lsec -lc
+    perllibs=-lcl -lpthread -lnsl -lnm -ldl -ldld -lm -lsec -lc
+    libc=/usr/lib/hpux64/libc.so, so=so, useshrplib=false, libperl=libperl.a
+    gnulibc_version=''
+  Dynamic Linking:
+    dlsrc=dl_hpux.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-B,deferred '
+    cccdlflags='+Z', lddlflags='-b +vnocompatwarnings -L/pro/local/lib -L/usr/lib/hpux64'
+
+
+Characteristics of this binary (from libperl):
+  Compile-time options: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP USE_64_BIT_ALL
+                        USE_64_BIT_INT USE_LARGE_FILES USE_LONG_DOUBLE
+                        USE_PERLIO USE_PERL_ATOF
+  Built under hpux
+  Compiled at Dec 20 2010 12:46:00
+  @INC:
+    /pro/lib/perl5/site_perl/5.12.2/IA64.ARCHREV_0-LP64-ld
+    /pro/lib/perl5/site_perl/5.12.2
+    /pro/lib/perl5/5.12.2/IA64.ARCHREV_0-LP64-ld
+    /pro/lib/perl5/5.12.2
+    .
@@ -0,0 +1,88 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 93;
+    unless ($ENV{PERL_CORE}) {
+	require Test::NoWarnings;
+	Test::NoWarnings->import ();
+	$tests++;
+	}
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V;
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, "May 11 2012 16:36:53", "Build time");
+is ($conf->{config}{version}, "5.14.2", "reconstructed \%Config{version}");
+is ($conf->{config}{gccversion}, "", "not built with gcc");
+is ($conf->{config}{ccversion}, "11.1.0.8", "xlc version");
+
+my $opt = Config::Perl::V::plv2hash ("")->{build}{options};
+foreach my $o (sort qw(
+	DEBUGGING PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP
+	PERL_PRESERVE_IVUV PERL_USE_DEVEL USE_64_BIT_ALL
+	USE_64_BIT_INT USE_LARGE_FILES USE_PERLIO
+	USE_PERL_ATOF
+	)) {
+    is ($conf->{build}{options}{$o}, 1, "Runtime option $o set");
+    delete $opt->{$o};
+    }
+foreach my $o (sort keys %$opt) {
+    is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
+    }
+
+__END__
+Summary of my perl5 (revision 5 version 14 subversion 2) configuration:
+
+  Platform:
+    osname=aix, osvers=5.3.0.0, archname=aix-64all
+    uname='aix i3 3 5 0004898ad300 '
+    config_args='-Dusedevel -Duse64bitall -Uversiononly -Dinc_version_list=none -des'
+    hint=recommended, useposix=true, d_sigaction=define
+    useithreads=undef, usemultiplicity=undef
+    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
+    use64bitint=define, use64bitall=define, uselongdouble=undef
+    usemymalloc=n, bincompat5005=undef
+  Compiler:
+    cc='xlc -q64', ccflags ='-q64 -DDEBUGGING -qlanglvl=extended -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias -DUSE_NATIVE_DLOPEN -qlanglvl=extended -I/pro/local/include -q64 -DUSE_64_BIT_ALL -q64',
+    optimize='-O',
+    cppflags='-DDEBUGGING -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -I/pro/local/include'
+    ccversion='11.1.0.8', gccversion='', gccosandvers=''
+    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=87654321
+    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8
+    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
+    alignbytes=8, prototype=define
+  Linker and Libraries:
+    ld='ld', ldflags ='-L/usr/local/ppc64/lib64 -b64 -q64 -L/pro/local/lib -brtl -bdynamic -b64'
+    libpth=/usr/local/ppc64/lib64 /lib /usr/lib /usr/ccs/lib /usr/local/lib /usr/lib64
+    libs=-lbind -lnsl -ldbm -ldb -ldl -lld -lm -lcrypt -lc
+    perllibs=-lbind -lnsl -ldl -lld -lm -lcrypt -lc
+    libc=/lib/libc.a, so=a, useshrplib=false, libperl=libperl.a
+    gnulibc_version=''
+  Dynamic Linking:
+    dlsrc=dl_aix.xs, dlext=so, d_dlsymun=undef, ccdlflags='  -bE:/pro/lib/perl5/5.14.2/aix-64all/CORE/perl.exp'
+    cccdlflags=' ', lddlflags='-b64  -bhalt:4 -G -bI:$(PERL_INC)/perl.exp -bE:$(BASEEXT).exp -bnoentry -lc -lm -L/usr/local/ppc64/lib64 -L/pro/local/lib'
+
+
+Characteristics of this binary (from libperl):
+  Compile-time options: DEBUGGING PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP
+                        PERL_PRESERVE_IVUV PERL_USE_DEVEL USE_64_BIT_ALL
+                        USE_64_BIT_INT USE_LARGE_FILES USE_PERLIO
+                        USE_PERL_ATOF
+  Built under aix
+  Compiled at May 11 2012 16:36:53
+  @INC:
+    /pro/lib/perl5/site_perl/5.14.2/aix-64all
+    /pro/lib/perl5/site_perl/5.14.2
+    /pro/lib/perl5/5.14.2/aix-64all
+    /pro/lib/perl5/5.14.2
+    .
@@ -0,0 +1,89 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 92;
+    unless ($ENV{PERL_CORE}) {
+	require Test::NoWarnings;
+	Test::NoWarnings->import ();
+	$tests++;
+	}
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V;
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, "Mar 12 2013 08:36:17", "Build time");
+is ($conf->{config}{version}, "5.16.3", "reconstructed \%Config{version}");
+is ($conf->{config}{ccversion}, "", "Using gcc. non-gcc version should not be defined");
+
+my $opt = Config::Perl::V::plv2hash ("")->{build}{options};
+foreach my $o (sort qw(
+	HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
+	PERL_MALLOC_WRAP PERL_PRESERVE_IVUV USE_64_BIT_INT
+	USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
+	USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_PERLIO
+	USE_PERL_ATOF
+	)) {
+    is ($conf->{build}{options}{$o}, 1, "Runtime option $o set");
+    delete $opt->{$o};
+    }
+foreach my $o (sort keys %$opt) {
+    is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
+    }
+
+__END__
+Summary of my perl5 (revision 5 version 16 subversion 3) configuration:
+   
+  Platform:
+    osname=linux, osvers=3.4.33-2.24-desktop, archname=i686-linux-64int
+    uname='linux lx09 3.4.33-2.24-desktop #1 smp preempt tue feb 26 03:34:33 utc 2013 (5f00a32) i686 i686 i386 gnulinux '
+    config_args='-Duse64bitint -Duselongdouble -des'
+    hint=previous, useposix=true, d_sigaction=define
+    useithreads=undef, usemultiplicity=undef
+    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
+    use64bitint=define, use64bitall=undef, uselongdouble=undef
+    usemymalloc=n, bincompat5005=undef
+  Compiler:
+    cc='cc', ccflags ='-fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
+    optimize='-O2',
+    cppflags='-fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include -fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
+    ccversion='', gccversion='4.7.1 20120723 [gcc-4_7-branch revision 189773]', gccosandvers=''
+    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
+    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
+    ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
+    alignbytes=4, prototype=define
+  Linker and Libraries:
+    ld='cc', ldflags ='-L/pro/local/lib -fstack-protector'
+    libpth=/pro/local/lib /lib /usr/lib /usr/local/lib
+    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
+    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
+    libc=/lib/libc-2.15.so, so=so, useshrplib=false, libperl=libperl.a
+    gnulibc_version='2.15'
+  Dynamic Linking:
+    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
+    cccdlflags='-fPIC', lddlflags='-shared -O2 -L/pro/local/lib -fstack-protector'
+
+
+Characteristics of this binary (from libperl): 
+  Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
+                        PERL_MALLOC_WRAP PERL_PRESERVE_IVUV USE_64_BIT_INT
+                        USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
+                        USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_PERLIO
+                        USE_PERL_ATOF
+  Built under linux
+  Compiled at Mar 12 2013 08:36:17
+  @INC:
+    /pro/lib/perl5/site_perl/5.16.3/i686-linux-64int
+    /pro/lib/perl5/site_perl/5.16.3
+    /pro/lib/perl5/5.16.3/i686-linux-64int
+    /pro/lib/perl5/5.16.3
+    .
@@ -0,0 +1,181 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 150;
+    unless ($ENV{PERL_CORE}) {
+	require Test::NoWarnings;
+	Test::NoWarnings->import ();
+	$tests++;
+	}
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V;
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, "Aug 25 2013 01:24:40", "Build time");
+is ($conf->{config}{version}, "5.16.2", "reconstructed \%Config{version}");
+is ($conf->{config}{ccversion}, "", "Using gcc. non-gcc version should not be defined");
+
+my $opt = Config::Perl::V::plv2hash ("")->{build}{options};
+foreach my $o (sort qw(
+	HAS_TIMES MULTIPLICITY PERLIO_LAYERS
+	PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT
+	PERL_MALLOC_WRAP PERL_PRESERVE_IVUV USE_64_BIT_ALL
+	USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
+	USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE
+	USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
+	USE_REENTRANT_API
+	)) {
+    is ($conf->{build}{options}{$o}, 1, "Runtime option $o set");
+    delete $opt->{$o};
+    }
+foreach my $o (sort keys %$opt) {
+    is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
+    }
+
+is_deeply ($conf->{build}{patches}, [
+    "/Library/Perl/Updates/<version> comes before system perl directories",
+    "installprivlib and installarchlib points to the Updates directory",
+    "CVE-2013-1667 hashtable DOS fix",
+    ], "Local patches");
+
+my %check = (
+
+    archname        => "darwin-thread-multi-2level",
+    bincompat5005   => "undef",
+    config_args     => "-ds -e -Dprefix=/usr -Dccflags=-g  -pipe  -Dldflags= -Dman3ext=3pm -Duseithreads -Duseshrplib -Dinc_version_list=none -Dcc=cc",
+    d_sfio          => "undef",
+    d_sigaction     => "define",
+    hint            => "recommended",
+    myuname         => "darwin jackson.apple.com 13.0 darwin kernel version 13.0.0: tue jul 30 20:52:22 pdt 2013; root:xnu-2422.1.53~3release_x86_64 x86_64",
+    use64bitall     => "define",
+    use64bitint     => "define",
+    useithreads     => "define",
+    uselargefiles   => "define",
+    uselongdouble   => "undef",
+    usemultiplicity => "define",
+    usemymalloc     => "n",
+    useperlio       => "define",
+    useposix        => "true",
+    usesocks        => "undef",
+
+    alignbytes      => 8,
+    byteorder       => "12345678",
+    cc              => "cc",
+    ccflags         => "-arch x86_64 -arch i386 -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector -I/usr/local/include",
+    ccversion       => "",
+    cppflags        => "-g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector -I/usr/local/include",
+    d_longdbl       => "define",
+    d_longlong      => "define",
+    doublesize      => 8,
+    gccosandvers    => "",
+    gccversion      => "4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)",
+    intsize         => 4,
+    ivsize          => 8,
+    ivtype          => "long",
+    longdblsize     => 16,
+    longlongsize    => 8,
+    longsize        => 8,
+    lseeksize       => 8,
+    nvsize          => 8,
+    nvtype          => "double",
+    lseektype       => "off_t",
+    optimize        => "-Os",
+    prototype       => "define",
+    ptrsize         => 8,
+
+    gnulibc_version => "",
+    ld              => "cc -mmacosx-version-min=10.9",
+    ldflags         => "-arch x86_64 -arch i386 -fstack-protector -L/usr/local/lib",
+    libc            => "",
+    libperl         => "libperl.dylib",
+    libpth          => "/usr/local/lib /usr/lib",
+    libs            => "",
+    perllibs        => "",
+    so              => "dylib",
+    useshrplib      => "true",
+
+    cccdlflags      => "",
+    ccdlflags       => "",
+    d_dlsymun       => "undef",
+    dlext           => "bundle",
+    dlsrc           => "dl_dlopen.xs",
+    lddlflags       => "-arch x86_64 -arch i386 -bundle -undefined dynamic_lookup -L/usr/local/lib -fstack-protector",
+    );
+is ($conf->{config}{$_}, $check{$_}, "reconstructed \$Config{$_}") for sort keys %check;
+
+
+__END__
+Summary of my perl5 (revision 5 version 16 subversion 2) configuration:
+   
+  Platform:
+    osname=darwin, osvers=13.0, archname=darwin-thread-multi-2level
+    uname='darwin jackson.apple.com 13.0 darwin kernel version 13.0.0: tue jul 30 20:52:22 pdt 2013; root:xnu-2422.1.53~3release_x86_64 x86_64 '
+    config_args='-ds -e -Dprefix=/usr -Dccflags=-g  -pipe  -Dldflags= -Dman3ext=3pm -Duseithreads -Duseshrplib -Dinc_version_list=none -Dcc=cc'
+    hint=recommended, useposix=true, d_sigaction=define
+    useithreads=define, usemultiplicity=define
+    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
+    use64bitint=define, use64bitall=define, uselongdouble=undef
+    usemymalloc=n, bincompat5005=undef
+  Compiler:
+    cc='cc', ccflags ='-arch x86_64 -arch i386 -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector -I/usr/local/include',
+    optimize='-Os',
+    cppflags='-g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector -I/usr/local/include'
+    ccversion='', gccversion='4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)', gccosandvers=''
+    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
+    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
+    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
+    alignbytes=8, prototype=define
+  Linker and Libraries:
+    ld='cc -mmacosx-version-min=10.9', ldflags ='-arch x86_64 -arch i386 -fstack-protector -L/usr/local/lib'
+    libpth=/usr/local/lib /usr/lib
+    libs= 
+    perllibs=
+    libc=, so=dylib, useshrplib=true, libperl=libperl.dylib
+    gnulibc_version=''
+  Dynamic Linking:
+    dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
+    cccdlflags=' ', lddlflags='-arch x86_64 -arch i386 -bundle -undefined dynamic_lookup -L/usr/local/lib -fstack-protector'
+
+
+Characteristics of this binary (from libperl): 
+  Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS
+                        PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT
+                        PERL_MALLOC_WRAP PERL_PRESERVE_IVUV USE_64_BIT_ALL
+                        USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
+                        USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE
+                        USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
+                        USE_REENTRANT_API
+  Locally applied patches:
+	/Library/Perl/Updates/<version> comes before system perl directories
+	installprivlib and installarchlib points to the Updates directory
+	CVE-2013-1667 hashtable DOS fix
+  Built under darwin
+  Compiled at Aug 25 2013 01:24:40
+  %ENV:
+    PERL5LIB=""
+    PERL5OPT=""
+    PERL5_CPANPLUS_IS_RUNNING="37393"
+    PERL5_CPAN_IS_RUNNING="37393"
+  @INC:
+    /Library/Perl/5.16/darwin-thread-multi-2level
+    /Library/Perl/5.16
+    /Network/Library/Perl/5.16/darwin-thread-multi-2level
+    /Network/Library/Perl/5.16
+    /Library/Perl/Updates/5.16.2/darwin-thread-multi-2level
+    /Library/Perl/Updates/5.16.2
+    /System/Library/Perl/5.16/darwin-thread-multi-2level
+    /System/Library/Perl/5.16
+    /System/Library/Perl/Extras/5.16/darwin-thread-multi-2level
+    /System/Library/Perl/Extras/5.16
+    .
+
@@ -0,0 +1,115 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 111;
+    unless ($ENV{PERL_CORE}) {
+	require Test::NoWarnings;
+	Test::NoWarnings->import ();
+	$tests++;
+	}
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V;
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, "May 18 2013 17:34:20", "Build time");
+is ($conf->{config}{version}, "5.18.0", "reconstructed \$Config{version}");
+
+my $opt = Config::Perl::V::plv2hash ("")->{build}{options};
+foreach my $o (sort qw(
+	HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
+	PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
+	PERL_PRESERVE_IVUV PERL_SAWAMPERSAND USE_64_BIT_INT
+	USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
+	USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LONG_DOUBLE
+	USE_PERLIO USE_PERL_ATOF
+	)) {
+    is ($conf->{build}{options}{$o}, 1, "Runtime option $o set");
+    delete $opt->{$o};
+    }
+foreach my $o (sort keys %$opt) {
+    is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
+    }
+
+is_deeply ($conf->{build}{patches}, [], "No local patches");
+
+my %check = (
+    alignbytes      => 4,
+    api_version     => 18,
+    bincompat5005   => "undef",
+    byteorder       => 12345678,
+    cc              => "cc",
+    cccdlflags      => "-fPIC",
+    ccdlflags       => "-Wl,-E",
+    config_args     => "-Duse64bitint -Duselongdouble -des",
+    gccversion      => "4.7.2 20130108 [gcc-4_7-branch revision 195012]",
+    gnulibc_version => "2.17",
+    ivsize          => 8,
+    ivtype          => "long long",
+    ld              => "cc",
+    lddlflags       => "-shared -O3 -L/pro/local/lib -fstack-protector",
+    ldflags         => "-L/pro/local/lib -fstack-protector",
+    libc            => "/lib/libc-2.17.so",
+    lseektype       => "off_t",
+    osvers          => "3.7.10-1.4-desktop",
+    use64bitint     => "define",
+    );
+is ($conf->{config}{$_}, $check{$_}, "reconstructed \$Config{$_}") for sort keys %check;
+
+__END__
+Summary of my perl5 (revision 5 version 18 subversion 0) configuration:
+   
+  Platform:
+    osname=linux, osvers=3.7.10-1.4-desktop, archname=i686-linux-64int-ld
+    uname='linux test 3.7.10-1.4-desktop #1 smp preempt fri apr 19 12:06:34 utc 2013 (8ef74f8) i686 i686 i386 gnulinux '
+    config_args='-Duse64bitint -Duselongdouble -des'
+    hint=recommended, useposix=true, d_sigaction=define
+    useithreads=undef, usemultiplicity=undef
+    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
+    use64bitint=define, use64bitall=undef, uselongdouble=define
+    usemymalloc=n, bincompat5005=undef
+  Compiler:
+    cc='cc', ccflags ='-fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
+    optimize='-O3',
+    cppflags='-fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include'
+    ccversion='', gccversion='4.7.2 20130108 [gcc-4_7-branch revision 195012]', gccosandvers=''
+    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
+    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
+    ivtype='long long', ivsize=8, nvtype='long double', nvsize=12, Off_t='off_t', lseeksize=8
+    alignbytes=4, prototype=define
+  Linker and Libraries:
+    ld='cc', ldflags ='-L/pro/local/lib -fstack-protector'
+    libpth=/pro/local/lib /lib /usr/lib /usr/local/lib
+    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
+    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
+    libc=/lib/libc-2.17.so, so=so, useshrplib=false, libperl=libperl.a
+    gnulibc_version='2.17'
+  Dynamic Linking:
+    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
+    cccdlflags='-fPIC', lddlflags='-shared -O3 -L/pro/local/lib -fstack-protector'
+
+
+Characteristics of this binary (from libperl): 
+  Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
+                        PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
+                        PERL_PRESERVE_IVUV PERL_SAWAMPERSAND USE_64_BIT_INT
+                        USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
+                        USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LONG_DOUBLE
+                        USE_PERLIO USE_PERL_ATOF
+  Built under linux
+  Compiled at May 18 2013 17:34:20
+  @INC:
+    /pro/lib/perl5/site_perl/5.18.0/i686-linux-64int-ld
+    /pro/lib/perl5/site_perl/5.18.0
+    /pro/lib/perl5/5.18.0/i686-linux-64int-ld
+    /pro/lib/perl5/5.18.0
+    .
@@ -0,0 +1,115 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 111;
+    unless ($ENV{PERL_CORE}) {
+	require Test::NoWarnings;
+	Test::NoWarnings->import ();
+	$tests++;
+	}
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V;
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, "Jan  9 2014 09:22:04", "Build time");
+is ($conf->{config}{version}, "5.18.2", "reconstructed \$Config{version}");
+
+my $opt = Config::Perl::V::plv2hash ("")->{build}{options};
+foreach my $o (sort qw(
+	HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
+	PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
+	PERL_PRESERVE_IVUV PERL_SAWAMPERSAND USE_64_BIT_INT
+	USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
+	USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LONG_DOUBLE
+	USE_PERLIO USE_PERL_ATOF
+	)) {
+    is ($conf->{build}{options}{$o}, 1, "Runtime option $o set");
+    delete $opt->{$o};
+    }
+foreach my $o (sort keys %$opt) {
+    is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
+    }
+
+is_deeply ($conf->{build}{patches}, [], "No local patches");
+
+my %check = (
+    alignbytes      => 4,
+    api_version     => 18,
+    bincompat5005   => "undef",
+    byteorder       => 12345678,
+    cc              => "cc",
+    cccdlflags      => "-fPIC",
+    ccdlflags       => "-Wl,-E",
+    config_args     => "-Duse64bitint -Duselongdouble -des",
+    gccversion      => "4.8.1 20130909 [gcc-4_8-branch revision 202388]",
+    gnulibc_version => "2.18",
+    ivsize          => 8,
+    ivtype          => "long long",
+    ld              => "cc",
+    lddlflags       => "-shared -O2 -L/pro/local/lib -fstack-protector",
+    ldflags         => "-L/pro/local/lib -fstack-protector",
+    libc            => "/lib/libc-2.18.so",
+    lseektype       => "off_t",
+    osvers          => "3.11.6-4-desktop",
+    use64bitint     => "define",
+    );
+is ($conf->{config}{$_}, $check{$_}, "reconstructed \$Config{$_}") for sort keys %check;
+
+__END__
+Summary of my perl5 (revision 5 version 18 subversion 2) configuration:
+   
+  Platform:
+    osname=linux, osvers=3.11.6-4-desktop, archname=i686-linux-64int-ld
+    uname='linux lx09 3.11.6-4-desktop #1 smp preempt wed oct 30 18:04:56 utc 2013 (e6d4a27) i686 i686 i386 gnulinux '
+    config_args='-Duse64bitint -Duselongdouble -des'
+    hint=recommended, useposix=true, d_sigaction=define
+    useithreads=undef, usemultiplicity=undef
+    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
+    use64bitint=define, use64bitall=undef, uselongdouble=define
+    usemymalloc=n, bincompat5005=undef
+  Compiler:
+    cc='cc', ccflags ='-fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
+    optimize='-O2',
+    cppflags='-fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include'
+    ccversion='', gccversion='4.8.1 20130909 [gcc-4_8-branch revision 202388]', gccosandvers=''
+    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
+    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
+    ivtype='long long', ivsize=8, nvtype='long double', nvsize=12, Off_t='off_t', lseeksize=8
+    alignbytes=4, prototype=define
+  Linker and Libraries:
+    ld='cc', ldflags ='-L/pro/local/lib -fstack-protector'
+    libpth=/pro/local/lib /lib /usr/lib /usr/local/lib
+    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
+    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
+    libc=/lib/libc-2.18.so, so=so, useshrplib=false, libperl=libperl.a
+    gnulibc_version='2.18'
+  Dynamic Linking:
+    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
+    cccdlflags='-fPIC', lddlflags='-shared -O2 -L/pro/local/lib -fstack-protector'
+
+
+Characteristics of this binary (from libperl): 
+  Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
+                        PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
+                        PERL_PRESERVE_IVUV PERL_SAWAMPERSAND USE_64_BIT_INT
+                        USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
+                        USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LONG_DOUBLE
+                        USE_PERLIO USE_PERL_ATOF
+  Built under linux
+  Compiled at Jan  9 2014 09:22:04
+  @INC:
+    /pro/lib/perl5/site_perl/5.18.2/i686-linux-64int-ld
+    /pro/lib/perl5/site_perl/5.18.2
+    /pro/lib/perl5/5.18.2/i686-linux-64int-ld
+    /pro/lib/perl5/5.18.2
+    .
@@ -0,0 +1,120 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 111;
+    unless ($ENV{PERL_CORE}) {
+	require Test::NoWarnings;
+	Test::NoWarnings->import ();
+	$tests++;
+	}
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V;
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, "Jun 30 2014 15:37:09", "Build time");
+is ($conf->{config}{version}, "5.20.0", "reconstructed \$Config{version}");
+
+my $opt = Config::Perl::V::plv2hash ("")->{build}{options};
+foreach my $o (sort qw(
+	HAS_TIMES MULTIPLICITY PERLIO_LAYERS
+	PERL_DONT_CREATE_GVSV
+	PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
+	PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
+	PERL_NEW_COPY_ON_WRITE PERL_PRESERVE_IVUV
+	PERL_USE_DEVEL USE_64_BIT_INT USE_ITHREADS
+	USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
+	USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LONG_DOUBLE
+	USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API
+	)) {
+    is ($conf->{build}{options}{$o}, 1, "Runtime option $o set");
+    delete $opt->{$o};
+    }
+foreach my $o (sort keys %$opt) {
+    is ($conf->{build}{options}{$o}, 0, "Runtime option $o unset");
+    }
+
+is_deeply ($conf->{build}{patches}, [], "No local patches");
+
+my %check = (
+    alignbytes      => 4,
+    api_version     => 20,
+    bincompat5005   => "undef",
+    byteorder       => 12345678,
+    cc              => "cc",
+    cccdlflags      => "-fPIC",
+    ccdlflags       => "-Wl,-E",
+    config_args     => "-Dusedevel -Uversiononly -Dinc_version_list=none -Duse64bitint -Dusethreads -Duseithreads -Duselongdouble -des",
+    gccversion      => "4.8.1 20130909 [gcc-4_8-branch revision 202388]",
+    gnulibc_version => "2.18",
+    ivsize          => 8,
+    ivtype          => "long long",
+    ld              => "cc",
+    lddlflags       => "-shared -O2 -L/pro/local/lib -fstack-protector",
+    ldflags         => "-L/pro/local/lib -fstack-protector",
+    libc            => "libc-2.18.so",
+    lseektype       => "off_t",
+    osvers          => "3.11.10-17-desktop",
+    use64bitint     => "define",
+    );
+is ($conf->{config}{$_}, $check{$_}, "reconstructed \$Config{$_}") for sort keys %check;
+
+__END__
+Summary of my perl5 (revision 5 version 20 subversion 0) configuration:
+   
+  Platform:
+    osname=linux, osvers=3.11.10-17-desktop, archname=i686-linux-thread-multi-64int-ld
+    uname='linux lx09 3.11.10-17-desktop #1 smp preempt mon jun 16 15:28:13 utc 2014 (fba7c1f) i686 i686 i386 gnulinux '
+    config_args='-Dusedevel -Uversiononly -Dinc_version_list=none -Duse64bitint -Dusethreads -Duseithreads -Duselongdouble -des'
+    hint=recommended, useposix=true, d_sigaction=define
+    useithreads=define, usemultiplicity=define
+    use64bitint=define, use64bitall=undef, uselongdouble=define
+    usemymalloc=n, bincompat5005=undef
+  Compiler:
+    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
+    optimize='-O2',
+    cppflags='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include'
+    ccversion='', gccversion='4.8.1 20130909 [gcc-4_8-branch revision 202388]', gccosandvers=''
+    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
+    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
+    ivtype='long long', ivsize=8, nvtype='long double', nvsize=12, Off_t='off_t', lseeksize=8
+    alignbytes=4, prototype=define
+  Linker and Libraries:
+    ld='cc', ldflags ='-L/pro/local/lib -fstack-protector'
+    libpth=/usr/local/lib /usr/lib/gcc/i586-suse-linux/4.8/include-fixed /usr/lib/gcc/i586-suse-linux/4.8/../../../../i586-suse-linux/lib /usr/lib /pro/local/lib /lib
+    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc -lgdbm_compat
+    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
+    libc=libc-2.18.so, so=so, useshrplib=false, libperl=libperl.a
+    gnulibc_version='2.18'
+  Dynamic Linking:
+    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
+    cccdlflags='-fPIC', lddlflags='-shared -O2 -L/pro/local/lib -fstack-protector'
+
+
+Characteristics of this binary (from libperl): 
+  Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS
+                        PERL_DONT_CREATE_GVSV
+                        PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
+                        PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
+                        PERL_NEW_COPY_ON_WRITE PERL_PRESERVE_IVUV
+                        PERL_USE_DEVEL USE_64_BIT_INT USE_ITHREADS
+                        USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
+                        USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LONG_DOUBLE
+                        USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API
+  Built under linux
+  Compiled at Jun 30 2014 15:37:09
+  @INC:
+    /pro/lib/perl5/site_perl/5.20.0/i686-linux-thread-multi-64int-ld
+    /pro/lib/perl5/site_perl/5.20.0
+    /pro/lib/perl5/5.20.0/i686-linux-thread-multi-64int-ld
+    /pro/lib/perl5/5.20.0
+    .