bobf has asked for the wisdom of the Perl Monks concerning the following question:
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.
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
Any ideas? I didn't find any documentation about this elsewhere.
Thanks
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Error deleting DBM::Deep file (ref count?)
by Athanasius (Archbishop) on Jun 06, 2012 at 03:32 UTC | |
by bobf (Monsignor) on Jun 06, 2012 at 14:26 UTC |
Back to
Seekers of Perl Wisdom