Maybe the problem stems from some other module loaded further up in the module hierarchy?
For debugging such things, I usually dump %INC together with the loaded module versions in the hope of finding what makes the difference:
#!perl -T
use strict;
use warnings;
use Test::More tests => 1;
my $module;
BEGIN {
$module = "WWW::Mechanize::PhantomJS";
require_ok( $module );
}
diag( sprintf "Testing %s %s, Perl %s", $module, $module->VERSION, $]
+);
for (sort grep /\.pm\z/, keys %INC) {
s/\.pm\z//;
s!/!::!g;
eval { diag(join(' ', $_, $_->VERSION || '<unknown>')) };
}
In your case of the program, maybe put the dumping part into an END block...