온라인 예제 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
최신 정보
차이 소개 our
및 my
참조하시기 바랍니다
( ThisSuitIsBlackNot에 감사드립니다 ).