diff -ru Enbugger-2.016-orig/Enbugger.xs Enbugger-2.016/Enbugger.xs --- Enbugger-2.016-orig/Enbugger.xs 2014-04-26 01:58:29.000000000 +1000 +++ Enbugger-2.016/Enbugger.xs 2014-05-15 10:51:28.000000000 +1000 @@ -231,13 +231,12 @@ Enbugger_set_magic_dbfile(rv) SV *rv INIT: - HV *hv; + GV *gv; CODE: assert(SvROK(rv)); - - hv = (HV*) SvRV(rv); - assert(SVt_PVHV == SvTYPE(hv)); - hv_magic(hv, NULL, PERL_MAGIC_dbfile); + gv = (GV*)SvRV(rv); + assert(SVt_PVGV == SvTYPE(gv)); + hv_magic(GvHVn(gv), GvAVn(gv), PERL_MAGIC_dbfile); diff -ru Enbugger-2.016-orig/lib/Enbugger.pm Enbugger-2.016/lib/Enbugger.pm --- Enbugger-2.016-orig/lib/Enbugger.pm 2014-04-26 01:58:29.000000000 +1000 +++ Enbugger-2.016/lib/Enbugger.pm 2014-05-15 10:51:28.000000000 +1000 @@ -356,11 +356,11 @@ if ( not defined $file ) { *DB::dbline = []; *DB::dbline = {}; - Enbugger::set_magic_dbfile( \%DB::dbline ); } else { no strict 'refs'; *DB::dbline = \*{"main::_<$file"}; + Enbugger::set_magic_dbfile( \*DB::dbline ); } } @@ -399,8 +399,8 @@ if ( ! *$glob{HASH} ) { my %breakpoints; - Enbugger::set_magic_dbfile(\%breakpoints); *$glob = \%breakpoints; + Enbugger::set_magic_dbfile($glob); } $$symname ||= $file;