2013-10-08 4 views
2

"Foobar :: Thing"이라는 접두어가 붙은 Perl 모듈이 있는데, 틀린 케이스로 잘못 작성하여 CPAN에 업로드했습니다. 올바른 케이스를 사용하도록 모듈의 이름을 바꾸고 싶습니다 (예 : "FooBar :: Thing"). 아직이 모듈의 사용자가 너무 많지 않으므로 모듈의 사용법을 수정하는 것이 좋습니다. CPAN 모듈의 이름을 바꿀 수 있습니까? 갈등이 발생합니까?다른 대소 문자로 된 CPAN 패키지 이름의 이름 바꾸기

+3

Perl 모듈은 대소 문자를 구분하므로 이론적으로 CPAN은'FooBar :: Thing'과' Foobar :: Thing'. 사용자는 혼란 스럽지만 CPAN은 없어야합니다. 그러나 '이론'과 '실천'에 관해 그들이 말하는 것을 알고 있습니다. 그렇지 않습니까? 'Foobar :: Thing'에 대한 업데이트를 제공하면 (a) 사용되면 더 이상 사용되지 않는 경고를 제공하고 (b) 모든 호출을'FooBar :: Thing'으로 라우트하도록하면 좋을 것입니다. 업데이트 된'Foobar :: Thing'의 사전 요구 사항으로'FooBar :: Thing'을 열거 할 수도 있습니다. 모두가 업그레이드했다고 확신하면 CPAN에서 잔해물을 제거 할 수 있습니다. –

+0

대소 문자를 구별하지 않는 파일 시스템 (Windows의 경우 NTFS, Mac OS X의 경우 HFS)은 일부 문제를 일으킬 수 있으므로 CPAN이이를 무시할 수 있습니다. 그렇다면 모듈의 버전 2에'FooBar :: Thing2'와 같은 접미사를 사용해야 할 수도 있습니다. 모듈 등록에 대한 현재 규칙이 (15 년 전에 관련이있는 내용이 많은 도움이되지 않는다는 것을 알려주고 있음을 기억합니다.) 그래서 여기에서 완전히 벗어날 수 있습니다. –

+1

'Foobar :: Thing'과'FooBar :: Thing'을 CPAN에서 검색 및 설치하지 않으려면 PAUSE 계정을 사용하여'Foobar :: Thing'의 모든 버전을 삭제하십시오. 빨리, 더 잘, 나는 말한다. – mob

답변

3

Perl 모듈 이름은 대소 문자를 구분하므로 CPAN은 이론상 FooBar::ThingFoobar::Thing을 모두 처리 할 수 ​​있어야합니다. 사용자는 혼란 스럽지만 CPAN은 없어야합니다. 그러나 '이론'과 '실천'에 관해 그들이 말하는 것을 알고 있습니다. 그렇지 않습니까? Foobar::Thing에 대한 업데이트를 제공하면 (a) 사용시 더 이상 사용되지 않는 경고를 제공하고 (b) 모든 호출을 FooBar::Thing으로 연결하는 것이 좋습니다. 업데이트 된 Foobar::Thing의 사전 요구 사항으로 FooBar::Thing을 나열 할 수도 있습니다. 모두가 업그레이드했다고 확신하면 CPAN에서 잔해물을 제거 할 수 있습니다.

Windows에서 NTFS 또는 Mac OS X에서 HFS와 같이 대소 문자를 구별하지 않는 파일 systema는 일부 문제를 일으킬 수 있습니다. 따라서 CPAN은 대문자와 소문자 만 다른 모듈을 허용하지 않으므로이 문제를 해결할 수 있습니다 모듈 이름 철자. 그렇다면 새 대문자 사용 모듈의 버전 2에 FooBar::Thing2과 같은 접미사를 사용해야 할 수 있습니다. 모듈 등록에 대한 현재 규칙이 15 년 이상 전에 도움이되지 않는다고 말하면서 (기억할지라도) 내가 여기에서 완전히 벗어날 수 있습니다.

Perl 작성자 업로드 SErver (PAUSE)의 내용을 On the Naming of Modules라고해야합니다. 그러나 AFAICS는 대소 문자 구분에 대해 아무 것도 말하지 않습니다. 대문자와 소문자 구분의 차이에 따른 충돌을 피하는 의미입니다.

을 그러나 다시, I는 대소 문자를 구분 모듈 이름에 대해 아무것도 표시되지 않습니다 :

또한 통과해야한다. (예, 이름의 구성 요소에 대한 11 자의 상한선이지만 ...)

관련 문제