For the static parse I rely on the "provides" list in the metadata. For the above example the Makefile.PL includes something like this:
my $release = '1.01';
my %MF = (
META_MERGE => {
'meta-spec' => { version => 2 },
provides => {
'Foo' => {
file => 'lib/Foo.pm',
version => $release
},
'Foo::Bar' => {
file => 'lib/Foo/Bar.pm',
version => $release
},
},
},
# ...
};
WriteMakefile (%MF);
So the version is specified explicitly twice: once in the Makefile.PL and once in the master module. If there's a reliable way to specify it explicitly only once that would be good to know.