是否可以在VERSION_FROM选项(Makefile.PL)中设置交叉模块版本?

时间:2014-08-22 08:53:30

标签: perl makefile makemaker

我想在一个地方为几个项目设置相同的版本。 我试过了:

use ExtUtils::MakeMaker;

WriteMakefile(
    VERSION_FROM => 'lib/project/version.pm',
    ...

在'lib / project / version.pm'中:

package project::version;
use AnotherProject;
our $VERSION = AnotherProject->VERSION();
1;

注意:AnotherProject位于单独的目录中,但可以通过'use AnotherProject'加载。并包含'我们的$ VERSION =“1.00”'。

$ perl Makefile.PL
WARNING: Setting VERSION via file 'lib/project/version.pm' failed
 at /usr/lib64/perl5/5.18.2/ExtUtils/MakeMaker.pm line 599.
Can't parse version 'undef'

是否可以从另一个模块传递(获取)版本字符串?

也许有另一种方法可以做到,请支持我。

1 个答案:

答案 0 :(得分:1)

当您使用VERSION_FROM时,ExtUtils :: MakeMaker不会运行您指向的文件,它会自行解析它并尝试以这种方式查找版本号。在这种情况下,这不会起作用。在Makefile.PL中使用VERSION代替VERSION_FROM并从那里调用其他模块应该可以工作。