0

いくつかのプロジェクトに同じバージョンを 1 か所でセットアップしたい。私はもう試した:

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' でロードできます。そして、' our $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'

別のモジュールからバージョン文字列を渡す (取得する) ことは可能ですか?

別の方法があるかもしれませんが、私をサポートしてください。

4

1 に答える 1

1

VERSION_FROM を使用すると、ExtUtils::MakeMaker は指定されたファイルを実行せず、それ自体を解析し、その方法でバージョン番号を見つけようとします。この場合、それはうまくいきません。Makefile.PL で VERSION_FROM の代わりに VERSION を使用し、そこから他のモジュールを呼び出すとうまくいくはずです。

于 2014-08-22T09:39:43.453 に答える