3

MakeMakerスクリプトに複数のPMファイルを追加する方法についての洞察をお探しですか?

このドキュメントを見ると、すべての例が1つのファイルが追加されているように見えますが、複数のファイルを追加するにはどうすればよいですか?

use ExtUtils::MakeMaker;

WriteMakefile(
   NAME => 'Your::Module',
   VERSION_FROM => 'lib/Your/Module.pm'
);

別の値のセットを追加するだけですか?

use ExtUtils::MakeMaker;

WriteMakefile(
   NAME => 'Your::Module',
   VERSION_FROM => 'lib/Your/Module.pm'

   NAME => 'Your::Module2',
   VERSION_FROM => 'lib/Your/Module2.pm'
);
4

3 に答える 3

5

答えは、何もしないことです。元のコードとレイアウトは問題ありません。MakeMaker はlib、指を離さずにモジュールを見つけます。試してみてください。

PMツールの回答のように明示的に書き出すことは不要であり、脆弱です。

于 2010-01-22T21:38:46.757 に答える
3

ツールの回答はすでにドキュメントを示していますが、質問の他の部分に回答します(ドキュメントにもありますが):

NAMEMakemaker がディストリビューション名に使用する文字列です。多くの場合、これはメイン モジュールですが、実際には好きなものにすることができます。

VERSION_FROM$VERSION特定のファイルから を取得し、配布バージョンで使用するように Makemaker に指示します。ほとんどの場合、人々はメイン モジュールのバージョンを配布バージョンとして使用しますが、そうする必要はありません。

于 2010-01-22T18:55:07.897 に答える
1

おそらく、を使用してみることができますPM。ExtUtils :: MakeMakerドキュメントによると:

インストールする.pmファイルと*.plファイルのハッシュリファレンス。例えば

CPANからダウンロードした他のモジュールの使用例を調べたところ、GDMakefile.PLコード で見つかりました。

WriteMakefile(
    'NAME'  => 'GD',
    'VERSION_FROM'  => 'GD.pm',
    'PREREQ_PM' => {
            'Math::Trig' => 0,
            },
    'PM'        => { 'GD.pm' => '$(INST_LIBDIR)/GD.pm',
                     'GD/Polyline.pm' => '$(INST_LIBDIR)/GD/Polyline.pm',
                     'GD/Polygon.pm' => '$(INST_LIBDIR)/GD/Polygon.pm',
                     'GD/Simple.pm' => '$(INST_LIBDIR)/GD/Simple.pm',
                     'GD/Image.pm' => '$(INST_LIBDIR)/GD/Image.pm',
                     'GD/Group.pm' => '$(INST_LIBDIR)/GD/Group.pm',
                     'qd.pl' => '$(INST_LIBDIR)/qd.pl'},

関数に渡すハッシュのWriteMakefileキーが重複しているため、投稿したコードが機能するとは思えません。

于 2010-01-22T14:23:25.360 に答える