2011-07-06 5 views

답변

5

@_은 서브 루틴의 매개 변수를 보유하는 변수입니다. 디버거에서 V로 보았을 때 디버거 내부 서브 루틴의 일부 매개 변수가 표시됩니다.

+0

이러한 매개 변수는 무엇을 의미 하는가를 코드 아니라 나 –

0

http://perldoc.perl.org/perlvar.html#General-Variables 서브 루틴 배열 @_ 내

그 루틴에 전달 된 파라미터를 포함한다. 서브 루틴 내부 @_ 기본 연산자 밀어 배열, 팝, 변화에 대한 배열 및 취소]는

본질적으로

, @_$_


use Data::Dumper; 

foo(0,'_',*main::_,0,-1); 

sub foo { 
    print Dumper(\@_); 
} 
의 배열과 동일하다

출력 :

$VAR1 = [ 
      0, 
      '_', 
      *::_, 
      0, 
      -1 
     ]; 
+0

에 쓸모없는 것, 그것은 디버거 출력입니다. '@ _ '의 내용을 보여주는 것입니다. – hobbs

+0

코드가 아닌 것은 무엇입니까? – vol7ron

+0

"코드가 기본'@ _' 배열의 내용을 덮어 씁니다." "귀하는 목록 할당을 수행하고 있습니다". 아니, 아니. – hobbs

1

perldoc을의 ATEST 버전 당신이 perlvar에서 필요한 부분 만 추출 -v 스위치와 변수를 찾아 보자?

$ perldoc -v '@_' 
    @ARG 
    @_  Within a subroutine the array @_ contains the parameters passed 
      to that subroutine. See perlsub. 
관련 문제