2009-08-01 4 views
5

5.10.0 이전 문서와 더 최근의 version 모듈 사이에 상충되는 조언으로 약간 혼란 스럽습니다.Perl에서 패키지 버전을 어떻게 지정합니까?

use version; our $VERSION = qv('1.0.3'); 

하지만 버전 모듈은 우리가 버전 문자열을 사용하여 다시 걸 말한다 : Perl Best Practices 버전 문자열 ('V1.0.3')가 나쁜 다음과 같이 하나의 버전을 지정하도록되어 있음을 꽤 명확하게 :

use version 0.77; our $VERSION = qv("v1.2.3"); 

퇴보했거나 이에 대한 이유가 있습니까?

+0

또한보십시오 http://stackoverflow.com/questions/1878108/whats-the-modern-way-of-declaring-which-version-of-perl-to-use – Ether

답변

8

에서 내 인용문 Perl 우수 사례은 적절하지 않습니다. 구체적 형태

our $VERSION = v1.0.3; 

베어 vstrings 낙담된다. 특히 노출 된 문자열의 함정을 피할 수 here을 설명하면서,이 기능은 가독성을 돕기 위해 추가되었습니다

use version 0.77; our $VERSION = qv("v1.2.3");    # shorthand 

: version.pm의 최신 버전에서 추천 사실 문자열을 사용하는 것입니다. 당신이 링크 된 문서의 페이지로

는 펄 5.10에 내장 된 로직을 사용하여 사전에 계류중인 'V'하지 않고 버전을 사용할 수 있습니다 말한다 :

당신은 소수 $를 사용하는 모듈이있는 경우 VERSION (부동 소수점)을 사용하면이 모듈을 변경할 필요가 없습니다. version.pm이 간단한 $ VERSION 할당에 대한 정보를 얻지는 않습니다.

질문에 대한 대답은 version.pm을 사용하는 새로운 코드를 작성하는 경우 새로운 "v1.0.3"구문을 사용하는 것입니다. 이전 코드가 작성된 방법이거나 module.pm에 명시 적으로 의존하기를 원하지 않는 경우 일반 번호를 사용하십시오.

+2

가장 새로운 복음은 그 형태의 vstrings입니다 v1.0.3은 위와 같지만 괜찮습니다. 1.0.3 (2 자리 10 자, v 없음) 형태의 진짜 varing은 악마, 악마, 악입니다. 이것은 perl5-porters의 직선입니다. – tsee

관련 문제