2009-10-26 3 views
3

나는 여전히 Perl의 OOP 기능에 대해 관심을 보이고있다. 첫 번째 매개 변수로 전송이 "내 :: 패키지"를 얻을 것이다이러한 정규 Perl 서브 루틴 호출이 있습니까?

My::Package::sub_name($param1,$param2) 

: 나는 같은 서브 루틴 호출이있는 경우 나, 뭔가에 대해 혼란 스러워요? 나는 아니란 말을하는 경향이 있지만 확실하지 않습니다.

답변

8

왜 사용하지 않으시겠습니까?

스포일러 경고 :

아니, 첫 번째 매개 변수는 패키지 이름이되지 않습니다.

그러나, 당신이 할 때

My::Package->sub_name($param1, $param2) 

당신은 첫 번째 매개 변수로 패키지/클래스 이름을 얻을 것이다.

+0

나는 이런 식으로 시도했지만 일반적인 규칙인지 여부를 생각하고있었습니다. – Geo

10

(Manni가 말한 것처럼) -> operator입니다. invocant가 @_ (축출 된 객체이거나 맨손의 클래스 이름 임)으로 변경되지 않습니다. 함수 이름의 ::은 이름 공간의 모호성 제거에 사용되며 @_은 변경되지 않습니다. perldoc perlboot, perldoc perltoot : 나는 담당자 창녀 : 그것은 문서에서 자세한 내용을 설명한 것

되고 싶지 않지만

는 지오의 제안에 따라 답변으로 게시 됨.

+0

담당자에게 자격이 있습니다. – Geo

+0

+1 위장입니까? –

+0

헤이, 나는 3k를 쳤다, 나는 조금 느려지는 것 같았다. .. :) – Ether

관련 문제