per5에서는 "my"를 사용하지 않고 $ foo 또는 @bar와 같은 변수 만 사용할 수 있습니다.왜 perl6은 자동으로 활성화되지 않아 "내"를 항상 사용할 필요가 없습니까?
$foo=1; @bar=(1,2);
왜 perl6에서 "내"를 항상 사용해야합니까? 그렇지 않으면 컴파일러는 변수 선언을하지 않을 것입니다. 왜 perl6은 자동 갱신을 할 수 없습니까?
print "{my @a=1,2,3;}\n"; # have to use "my" to declare variable
print "{@a=1,2,3;}\n"; # this is error 'Variable '@a' is not declared'
나는 항상 "my"를 사용하지 않아도된다는 제한을 좋아하지 않습니다. 이것은 C와 같이 너무 낮은 레벨입니다. 매우 성가신.
항상 자동 동기화를 켜는 방법이 있습니까?
감사합니다.
그것이 이전 버전에서 작동했던 방식이기 때문에 기본적으로 유일한 방법입니다. 'use strict'와'use warnings '(또는 당신을 대신해서 그렇게하는 다른 선언문)으로 Perl 5 코드를 시작하지 않으면, 당신은 끔찍한 Perl 5 코드를 작성하고있는 것입니다. 필자는 "Modern Perl"(저자/발행인이 무료로 제공)이라는 책을 읽는 것이 좋습니다. –
이것은 C와 같은 낮은 수준이 아닙니다. 오히려 매우 높은 수준입니다. 어셈블리와 같이 매우 낮은 수준의 프로그래밍에서는 원하는 RAM 주소를 사용할 수 있습니다. 원하는 RAM 주소를 먼저 사용해야합니다. 잊어 버리면 실수로 두 개의 변수에 동일한 RAM 주소를 사용하게되어 버그가 발생할 수 있습니다. 'my'는 당신이 언어에 힌트를주는 것을 허용합니다 : 이봐, 여기가 내 변수를 선언하는 곳입니다. 컴파일러가 선언하기 전에 사용하면 불평 할 수 있습니다. 컴파일러가 두 번 선언하면 컴파일러에서 불평 할 수 있습니다. 그렇다면 실수를 저지른 것입니다. – slebetman
* "이전 버전에서 작동했던 방식이기 때문에 기본적으로 그 방법이 유일한 이유입니다."* 그러나 이전에는 그런 방식이 아니 었습니다. 기본적으로 모든 Perl 5 변수는 패키지 변수입니다. Perl 5 방식이 잘못되어 기본값이되었습니다. – Borodin