I guess for clarification I should state that $x is a $dbh object.
Thanks for the help from Jenda and Bruce Hudson,

I'll check out Scalar::Utils.

Marty
----- Original Message -----
From: "Jenda Krynicky" <[EMAIL PROTECTED]>
To: "Perl-Win32-Users EE-mail"" <[EMAIL PROTECTED]>;
"Perl-Unix-Users EE-mail"" <[EMAIL PROTECTED]>
Sent: Wednesday, April 02, 2003 5:37 PM
Subject: Re: [Perl-unix-users] memory issues


> From:           "Martin Moss" <[EMAIL PROTECTED]>
> To:             "Perl-Win32-Users \(E-mail\)"
<[EMAIL PROTECTED]>,
>   "Perl-Unix-Users \(E-mail\)" <[EMAIL PROTECTED]>
> Subject:        [Perl-unix-users] memory issues
> Date sent:      Wed, 2 Apr 2003 12:12:18 +0100
>
> > Secure FTPAll,
> >
> > I was wondering if I could get clarification on something.
> > I have a class object called $x.
> >
> > What I want to do is pass this $x into objects $y & $z, and store it
> > internally Thus:-
> >
> > $y->{x}=$x;
> > $z->{x}=$x;
> >
> > This Is ok, and shouldn't cause any problems. However what happens if,
> > in $y I have a method which does this:-
> >
> > sub method
> > {
> >     my $y=shift;
> >     my $z=MYMod::Z->new(x=>$y->{x});
> >
> >     $y->{z}=$z;
> >
> > }
> >
> > I am concerned I'm creating some sort of memory leak?
>
> Did you create a loop between the objects? (A points to B, B points
> to C and C points to A)
>
> If you did not, you are safe.
> If you did you'll have to either
> 1) break the loop explicitely when you want to get rid of the
> objects
> or
> 2) use Scalar::Utils and weaken some of the references.
> Weak reference is a reference that doesn't increase the reference-
> count. That is if there are only weak references to an object it may
> be destroyed/garbage collected. Of course in this case you have to be
> a bit carefull.
>
> I would probably go with the weak references.
>
> Jenda
> ===== [EMAIL PROTECTED] === http://Jenda.Krynicky.cz =====
> When it comes to wine, women and song, wizards are allowed
> to get drunk and croon as much as they like.
> -- Terry Pratchett in Sourcery
>
> _______________________________________________
> Perl-Unix-Users mailing list
> [EMAIL PROTECTED]
> To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
>

_______________________________________________
Perl-Unix-Users mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to