in reply to difference between delete and undef
delete removes the entire entry, i.e. key plus value, while undef just sets the value to undef, leaving the key in place:
#!/usr/bin/perl use Data::Dumper; my %hash = ( key => 'foo', key2 => 'bar'); print Dumper \%hash; undef($hash{key}); print Dumper \%hash; delete($hash{key}); print Dumper \%hash; __END__ $VAR1 = { 'key2' => 'bar', 'key' => 'foo' }; $VAR1 = { 'key2' => 'bar', 'key' => undef }; $VAR1 = { 'key2' => 'bar' };
|
|---|