perlquestion
bobf
<p>
I stumbled across a bug in my code that I tracked down to something I am doing with a DBM::Deep file. When I assign the inner key of a DBM hash-of-hrefs to another variable and then try to delete the file, I get an error when the inner key is a href but not when it is a non-ref scalar.
<code>
use strict;
use warnings;
use DBM::Deep;
my $db_file = 'href_nocopy';
{
my $db = DBM::Deep->new( $db_file );
$db->{key} = {};
}
print "\nDeleting $db_file\n";
unlink( $db_file ) || warn $!; # succeeds
$db_file = 'href_copy';
{
my $db = DBM::Deep->new( $db_file );
$db->{key} = {};
my $db2 = $db->{key};
}
print "\nDeleting $db_file\n";
unlink( $db_file ) || warn $!; # fails (permission denied)
$db_file = 'nonref_copy';
{
my $db = DBM::Deep->new( $db_file );
$db->{key} = 1;
my $db2 = $db->{key};
}
print "\nDeleting $db_file\n";
unlink( $db_file ) || warn $!; # succeeds
</code>
</p>
<p>
Any ideas? I didn't find any documentation about this elsewhere.
</p>
<p>
Thanks
</p>