Perl变量的内存分配

perl是弱类型变量,不同于C,Java。不管是数字还是字符串,初始分配的内存是固定的。比如

my $a = 1; #$a占用24字节,并不像Java等强类型的int类型占用4个字节。

my $b = 'a';#$b占用48字节

my $c = "abcdefghijlmn"; #$c占用72字节。

可见,内存分配采用递进增量方式,最小分配是24个字节。如果变量实际内容很小(比如一个数字),用perl就非常的不划算。所以处理大的数组或者hash时,用perl消耗的内存往往非常惊人,需要注意。