우선, 그것은 파울입니다.
그런데, 나는 또한 그것이 효과가 있다는 것에 놀랐다. 나는 ++$#array
이 숫자를 증가 시키려고 할 때 "상수를 수정할 수 없다"라는 오류를 얻었을 것이라고 추측했을 것입니다. (물론 우연히 그런 일을 한 것은 아닙니다.) 그러나 정확하게 우리가 틀린 부분이었을 것입니다 : $#array
은 상수 (숫자)가 아닙니다. 변수 식입니다. 그런대로 당신은 그것으로 혼란 스러울 수 있습니다.
my @array = qw/1 2 3/;
++$#array;
$array[$#array] = qw/4/;
print "@array\n"
그리고 심지어 여분의 재미를 위해,이 :
my @array = qw/1 2 3/;
$#array += 5;
foreach my $wtf (@array) {
if (defined $wtf) {
print "$wtf\n";
}
else {
print "undef\n";
}
}
그리고는, 네, 펄 요리 책 성장 또는 배열을 절단하는 $#array
엉망으로 행복을 (제 4 장 다음 사항을 고려 , 조리법 3). 나는 아직도 못생긴 것을 발견하지만, 어쩌면 그저 느린 "그러나 숫자"의 편견 일뿐입니다.
감사합니다 - 그게 내가 작성해야 제목입니다. –