理解Perl包中的完全限定名



我试图从CGI理解一些代码。点,具体来说:

package CGI::MultipartBuffer;
....
$MultipartBuffer::INITIAL_FILLUNIT ||= 1024 * 4;
...
$INITIAL_FILLUNIT = $MultipartBuffer::INITIAL_FILLUNIT;

我需要知道的是$MultipartBuffer::INITIAL_FILLUNIT$INITIAL_FILLUNIT的完全限定名,因为在我的解释中,它们都应该是$CGI::MultipartBuffer::INITIAL_FULLUNIT,但我一定是错了,否则为什么需要第二个赋值语句?

$INITIAL_FILLUNIT没有声明,所以它是一个包变量。[1]由于当前包是CGI::MultipartBuffer,它指向$CGI::MultipartBuffer::INITIAL_FILLUNIT

这意味着

$INITIAL_FILLUNIT = $MultipartBuffer::INITIAL_FILLUNIT;

$CGI::MultipartBuffer::INITIAL_FILLUNIT = $MultipartBuffer::INITIAL_FILLUNIT;

  1. 这是use strict;禁止的。

最新更新