了解Perl包中的完全限定名

m4pnthwp  于 2023-01-05  发布在  Perl
关注(0)|答案(1)|浏览(166)

I'm trying to understand some code from CGI.pm, specifically:

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

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

cbwuti44

cbwuti441#

$INITIAL_FILLUNIT没有声明,所以它是一个包变量。[1]因为当前包是CGI::MultipartBuffer,所以它引用$CGI::MultipartBuffer::INITIAL_FILLUNIT
这意味着

$INITIAL_FILLUNIT = $MultipartBuffer::INITIAL_FILLUNIT;

手段

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

1.这是use strict;所禁止的。

相关问题