[perl] Perl에서 “my”키워드를 어떻게 사용해야합니까?

온라인 예제 Perl 스크립트에서 변수 이름 앞에 “my”키워드가 계속 표시되지만 그게 무슨 뜻인지 모르겠습니다. 매뉴얼 페이지와 다른 사이트를 온라인으로 읽으려고했지만 사용 방식과 매뉴얼의 차이를 고려할 때 그것이 무엇인지 식별하는 데 어려움이 있습니다.

예를 들어,이 게시물에서 배열의 길이를 가져 오는 데 사용됩니다.
Perl에서 배열의 크기 찾기

그러나 매뉴얼은 다음과 같이 말합니다.

my는 나열된 변수를 둘러싸는 블록, 파일 또는 평가판에 대해 (어휘 적으로) 로컬로 선언합니다. 둘 이상의 값이 나열되면 목록을 괄호 안에 넣어야합니다.

무엇을하고 어떻게 사용합니까?



답변

my변수 의 범위 를 제한합니다 . 변수의 범위는 볼 수있는 곳입니다. 변수의 범위를 변수가 필요한 곳으로 줄이는 것은 좋은 프로그래밍의 기본 측면입니다. 이를 통해 코드를 더 읽기 쉽고 오류 발생 가능성이 적어 많은 파생 이점을 얻을 수 있습니다.

를 사용하여 변수를 선언하지 않으면 my대신 전역 변수가 생성됩니다. 이것은 피해야합니다. 를 사용하면 use strict;Perl이 암시 적으로 전역 변수를 생성하지 못하도록하므로 프로그램에서 항상 use strict;(and use warnings;)를 사용해야 합니다.


관련 자료 : use strict;그리고 use warnings;?


답변

요약 : my새 변수를 만들고 local일시적으로 변수 값을 수정합니다.

아래 예에서 $ :: a는 ‘global’네임 스페이스의 $ a를 나타냅니다.

$a = 3.14159;
{
  my $a = 3;
  print "In block, \$a = $a\n";
  print "In block, \$::a = $::a\n";
}
print "Outside block, \$a = $a\n";
print "Outside block, \$::a = $::a\n";

# This outputs
In block, $a = 3
In block, $::a = 3.14159
Outside block, $a = 3.14159
Outside block, $::a = 3.14159

즉, local변수의 값을 일시적으로 변경하지만 그것이 존재하는 범위 내에서만 가능합니다.

출처 : http://www.perlmonks.org/?node_id=94007

최신 정보

차이 소개 ourmy참조하시기 바랍니다

( ThisSuitIsBlackNot에 감사드립니다 ).


답변

my ()를 통한 전용 변수my.

언급 한 배열 크기 예제에서는 배열의 크기를 찾는 데 사용되지 않습니다. 배열의 크기를 유지하기 위해 새 변수를 만드는 데 사용됩니다.


답변