http://qs321.pair.com?node_id=635602


in reply to Re: scope and undef
in thread scope and undef

cool bart, and thanks for the reply. I'll show a bit more detail into what i'm doing which hopefully will make what i see with Hook::LexWrap a little clearer to you.
my $app = Daemon->new(sleep => 60, mailLimit => 200); while (1) { $app->mailout(); print scalar(localtime)." Sleeping 300 seconds...\n"; sleep 10; }

is how the Daemon is called.

inside Daemon is a call to an object i've made myself to manage database connections, which you can find here, which is not particularly complicated, or fancy, just an abstraction to the DBI which i find handy. we'll call this DBhandler. on creating a Daemon object, DBhandler is put into $self->{dbo}

Since Daemon is persistant, i wrapped DESTROY in DBhandler, and told it to print Dumper($self).

This is where i see things that are contradictory. when i undef $self->{dbo} DESTROY is called in DBhandler, and i see $self being dumped to standard out, however upon checking the sessions in the database (ie via v$session) i see the number of connections from that user increasing!

oh, for the record, the delete, while not tested in this specific context, (ie with Hook::LexWrap), symptoms are the same.

Replies are listed 'Best First'.
Re^3: scope and undef
by eric256 (Parson) on Aug 28, 2007 at 17:03 UTC

    In that code you do a foreach on a hashref. I don't think that destroy is actualy looping at all. Shouldn't it be foreach (keys %{$self->{_db_handle}})?

    sub DESTROY { my $self = shift; foreach ($self->{_db_handle}) { $self->{_db_handle}{$_}->disconnect; } }

    ___________
    Eric Hodges
      You're right there, its a bug in the code. I've actually fixed that in the one that i'm using (but have neglected to update the version here.. )

      well spotted! :-)