두 개의 Perl 클래스가 있습니다. 하나를 Client
이라고하고 다른 하나는 Server
이라고합시다. Server
은 잘 정의 된 무스 클래스입니다. Client
은 무스 클래스가 아니며 네트워크를 통해 Server
개체에 연결하기위한 매우 얇은 외관입니다.무스 클래스의 가져 오기 메소드 무시
또한 Client
은 프로젝트의 내부 작업이므로 다른 사람이 사용해서는 안됩니다. 현재 우리 회사에서 다른 개발자가 항상 신뢰할 수있는 것은 아닙니다. 그들이 뭔가 잘못하고 있다는 것을 그들에게 통지하기 위해, 우리의 Client
클래스는 사용자 정의 import 문이 있습니다
package Client;
sub import {
my ($self, $promise) = @_;
die "this is not a public API"
unless $promise eq "Only CertainTeam should be using this API";
}
sub do_something { ... }
사람이 Client
를 사용하는, 그들은 입력해야합니다 그래서 위해 :
use Client q{Only CertainTeam should be using this API};
이것이 최선의 접근 방법인지 확실하지 않지만 다른 팀이 Client
을 사용하는 것을 막는 데는 효과적입니다. 이제 무스 수업을 Client
으로 만들고 싶습니다. 그렇지만, use Moose;
을 추가 할 때 perl은 꽤 불행합니다. 이제 Moose의 임포트를 무시하고 있습니다.
Prototype mismatch: sub Client::with: none vs (&;$) at Client.pm line 14
사람이 무스 클래스하면서 내가 Client
의 수입 동작을 지속 할 수있는 방법에 어떤 아이디어가 : 나는 다음과 같은 오류가 발생합니다?
누구나 간단한 '클라이언트 사용'()을 사용하면이 문제를 무시할 수 있습니다. 'Client'를 다른 위치에 설치하는 것만으로는 해결할 수없는 것이 확실합니까? (어리석은 다른 개발자들이 액세스 할 수없는 곳)? – AKHolland