【发布时间】:2011-03-21 09:46:24
【问题描述】:
假设我有一个多级哈希:
$class->{'key1'}->{'key2'}->{$key3}->{'string'}->{$key5},
$class->{'key1'}->{'key2'}->{$key3}->{'string'}->{$key5}
等于某个整数。
$key3 可以是类名,如“音乐”、“英语”...
$key5 可以是学生姓名,例如“mary”、“luke”...
下面的操作会释放$key3="music"级别下的所有内存吗?
即分配给$key5的内存会被释放吗?
$current_class= $class->{'key1'}->{'key2'}->{"音乐"};
$current_class= 未定义;
更新:
感谢两位。我对delete和undef的理解是:delete会去掉key='music'的条目
所以$class->{'key1'}->{'key2'}->{"music"} 将不存在。而undef 会将$class->{'key1'}->{'key2'}->{"music"} 的值设置为undef。但是key='music' 的条目仍然存在,但它的值将是undef 所以$class->{'key1'}->{'key2'}->{"music"} = undef。
所以我应该删除条目,对吗?
你是说
undef $class->{'key1'}->{'key2'}->{"music"};
和
$class->{'key1'}->{'key2'}->{"music"} = undef;
有什么不同?
【问题讨论】:
标签: perl