The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl
use strict;
use warnings;
use Test::More tests => 6;


open my $fh, '<', 'lib/B/Utils.pm'
  or die "Can't open lib/B/Utils.pm: $!";
undef $/;
my $doc = <$fh>;
close $fh;

ok( my ( $pod_version ) = $doc =~ /^=head1\s+VERSION\s+([\d._]+)/m,
    "Extract version from pod in lib/B/Utils.pm" );
ok( my ( $b_utils_pm_version ) = $doc =~ /^\$VERSION\s+=\s+'([\d._]+)';/m,
    "Extract version from code in lib/B/Utils.pm" );
is( $pod_version, $b_utils_pm_version, 'Documentation & $VERSION are the same' );


open $fh, '<', 'lib/B/Utils/OP.pm'
    or die "Can't open lib/B/Utils/OP.pm: $!";
$doc = <$fh>;
close $fh;
ok( my( $b_utils_op_pm_version ) = $doc =~ /^our\s+\$VERSION\s+=\s+'([\d._]+)';/
    "Extract version from code in lib/B/Utils/OP.pm" );


open $fh, '<', 'README'
  or die "Can't open README: $!";
$doc = <$fh>;
close $fh;
ok( my ( $readme_version ) = $doc =~ /^VERSION\s+([\d._]+)/m,
    "Extract version from README" );

is( $readme_version, $pm_version, 'README & $VERSION are the same' );