나는 여전히 Perl의 OOP 기능에 대해 관심을 보이고있다. 첫 번째 매개 변수로 전송이 "내 :: 패키지"를 얻을 것이다이러한 정규 Perl 서브 루틴 호출이 있습니까?
My::Package::sub_name($param1,$param2)
: 나는 같은 서브 루틴 호출이있는 경우 나, 뭔가에 대해 혼란 스러워요? 나는 아니란 말을하는 경향이 있지만 확실하지 않습니다.
나는 여전히 Perl의 OOP 기능에 대해 관심을 보이고있다. 첫 번째 매개 변수로 전송이 "내 :: 패키지"를 얻을 것이다이러한 정규 Perl 서브 루틴 호출이 있습니까?
My::Package::sub_name($param1,$param2)
: 나는 같은 서브 루틴 호출이있는 경우 나, 뭔가에 대해 혼란 스러워요? 나는 아니란 말을하는 경향이 있지만 확실하지 않습니다.
왜 사용하지 않으시겠습니까?
스포일러 경고 :
아니, 첫 번째 매개 변수는 패키지 이름이되지 않습니다.
그러나, 당신이 할 때
My::Package->sub_name($param1, $param2)
당신은 첫 번째 매개 변수로 패키지/클래스 이름을 얻을 것이다.
(Manni가 말한 것처럼) ->
operator입니다. invocant가 @_
(축출 된 객체이거나 맨손의 클래스 이름 임)으로 변경되지 않습니다. 함수 이름의 ::
은 이름 공간의 모호성 제거에 사용되며 @_
은 변경되지 않습니다. perldoc perlboot, perldoc perltoot : 나는 담당자 창녀 : 그것은 문서에서 자세한 내용을 설명한 것
되고 싶지 않지만
는 지오의 제안에 따라 답변으로 게시 됨.
나는 이런 식으로 시도했지만 일반적인 규칙인지 여부를 생각하고있었습니다. – Geo