2008-12-15 4 views

답변

5

씹는 담배의 한 조각은 이미 내가 Module::Build와 함께 가기로 결정하지만 분명히 다른 대답이 가능 씹는 담배의 한 조각을 뱉어 후 "Which framework should I use to write modules?"

년 전에이에 조금 씹어되었다! (비록 나는 M : B에 지금까지 만족해 왔지만).

+0

고마워요, –

+0

가장 큰 대답은 아니지만 정확하게 내가 원하는 부분에 연결됩니다. –

5

글쎄, Module::Build은 꽤 좋은 모듈입니다. ExtUtils::MakeMaker을 대신 할 수 있습니다. Makefile.PL을 Makefile 대신 Build.PL로 바꾸면됩니다. 그것은 또한 "단순한 것이 단순해야하고, 어려운 것이 가능해야합니다"라는 의미이기도합니다.

Module::Install은 다른 접근 방식을 취해 Makefile을 생성합니다. 모두가 내가 그 모듈의 비교를 기억하지

:-) 모두의 최신 버전을 실행하도록 또한

은, 잊지 마세요,하지만 난 당신이 Module::BuildModule::Install에서 몇 가지를 찾을 수 있다고 생각 해당 cpanratings 페이지.

+0

감사합니다. MB가 제게 못을 박는다고 생각합니다. –

6

우리는 여기서 Module::Build을 사용합니다.

주된 이유는 쉬운 확장 성입니다.

Module :: Build를 사용하면 서브 클래 싱을 통해 순수한 Perl로 빌드 프로세스를 더 많이 수행 할 수 있습니다. Module::Install을 사용하여 더 많은 작업을 수행하려면 Makefile이 작동하는 방식에 대한 지식이 필요합니다. AFAIK. 아마도 Perl을 이미 알고 있기 때문에 이점이 될 수 있습니다.

앞에서 말씀 드린대로 Module :: Build를 사용하면 외부 프로그램 인 make에 대한 종속성이 제거됩니다. 이는 좋은 것으로 간주 될 수 있습니다.

그러나 내가 생각할 수있는 주요 단점은 다음과 같습니다

  • 모듈 : : 빌드가 코어를 공격했지만, 모두가 펄의 최신 버전을 사용하는 것입니다. 이전 버전의 코어를 사용하는 사용자는 새로운 종속성을 생성하게됩니다.
  • perl Makemaker.PL; make; make install 패러다임에는 많은 베테랑 (반드시 Perl 사람들이 아님)이 사용되며 Build.PL 대신에 던져 질 수 있습니다. 바라기를 이것은 큰 문제가 아닙니다.
  • Module :: Build는 문서가 우리가 사용하고있는 엣지 케이스를 다루지 않았기 때문에 때때로 기능이 변경되었을 때 빌드를 망가 뜨 렸습니다. 그런 다음 가장자리 케이스가 변경되고 문서화되었지만 빌드가 다시 작동하도록 서브 클래스를 다시 코딩해야했습니다 (최근 0.2808에서 0.3으로 업그레이드 됨).

그래도 나는 확장성에 대해 Module :: Build를 권장합니다. 그게 문제가 아니라면, Module :: Install을 사용하는 것이 더 낫습니다.