증상 : $c="foo";
은 오류를 발생시키고 $b="foo";
은 그렇지 않습니다.Perl, 가변 동작, 이름 기반 불일치
내 스크립트는 문자 그대로 3 줄입니다. 다음은 오류 또는 경고
use strict;
$b = "foo";
print $b;
을 생산 없지만 다음과 변경하면, 나는 오류 "명시 적으로 패키지 이름이 필요합니다"얻는다. use strict;
$c = "foo";
print $c;
,
나는 use strict;
사용하기 전에 선언 할 변수를 필요로 이해하고 my $c = "foo";
-$c = "foo";
을 변경하면 실제로 오류를 방지 않습니다, 그러나 이것은 혼자 차이를 설명하지 않습니다.
여기에 어떤 빛을 비추어 줄 수 있습니까? 나는 명백한 무엇인가 놓치고 있다고 확신한다. Windows 7 x64에서 Strawberry Perl v5.16.3을 실행 중입니다. 나는 strict 문서에서 c:\strawberry> perl test.pl
: 따라서
$a
및$b
변수는이 두 항목의 값을 가지고sort
블록에 별도의 선언없이 사용할 수 있습니다 '및'$ b'를 코드에서 일반적으로 사용할 수 있습니다. – DVK그게 좋은 습관 같아서 고마워, DVK. –