Perl read ($ buf) 함수가 $ buf 변수의 내용을 어떻게 수정할 수 있는지 이해할 수 없습니다. $ buf는 참조가 아니므로 매개 변수는 copy (내 c/C++ 지식에서)에 의해 제공됩니다. 그러면 $ buf 변수가 호출자에서 어떻게 수정 될까요?ref()가 아닌 perl read() 함수와 버퍼 뒤에있는 마법은 무엇입니까?
동점 변수입니까? setbuf는 대한 C 문서는 나를
# Example 1
$buf=''; # It is a scalar, not a ref
$bytes = $fh->read($buf);
print $buf; # $buf was modified, what is the magic ?
# Example 2
sub read_it {
my $buf = shift;
return $fh->read($buf);
}
my $buf;
$bytes = read_it($buf);
print $buf; # As expected, this scope $buf was not modified
관련 문서에 대한 포인터를 보내 주셔서 감사 드리며 트릭을 작동합니다. –