SPUG: OO Perl object backrefrence question

Umar Cheema umar at drizzle.com
Fri Sep 6 11:06:07 CDT 2002


Ah. In that case read the article Ryan just sent out. It has just the 
right stuff for you.

On Fri, 6 Sep 2002, Peter Darley wrote:

> Umar,
> 	In this case I'm not inheriting, I'm using objects to hold info on it's
> self, as well as collections of other objects that make up a hierarchy.  So,
> the page class isn't an inherited class of the survey class, the page
> objects are just included in a property of the survey object.  There might
> be a structure like:
> 
> [My::Survey=HASH(0x80f6459)] = {ClientName => 'The Client',
> 		 			  Pages[1] => [My::Page=HASH(0x80f6460)]
> 		 			  Pages[2] => [My::Page=HASH(0x80f6461)]}
> 
> 	So, what I would like to be able to do is in the My::Page package be able
> to do something like $Self->Parent->{'ClientName'} and get back 'The
> Client'.
> 
> 	I don't know if that makes any sence or not...
> 
> Thanks,
> Peter Darley
> 
> -----Original Message-----
> From: Umar Cheema [mailto:umar at drizzle.com]
> Sent: Friday, September 06, 2002 8:00 AM
> To: Peter Darley
> Subject: Re: SPUG: OO Perl object backrefrence question
> 
> 
> Hmmm. Maybe I am not understanding it correctly but if you're inheriting
> from the parent object wouldn't you be able to accomplish that by calling
> a method like
> $self->setClientName($client_name);
> 
> from the page object and having the setClientName method placed in the
> parent object.
> 
> Then you can simply call a getter method like $self->getClientName() which
> will simply return the client name from the parent object that you have
> already set by calling setClientName from the page object?
> 
> 
> On Fri, 6 Sep 2002, Peter Darley wrote:
> 
> > Friends,
> > 	Another stupid question...
> >
> > 	I'm working on building a series of objects in a hierarchy that
> represents
> > a survey.  The survey object will hold page objects which will hold
> > questions object, etc.
> > 	I'm wondering if there is a standard way for an object to know what it's
> > parent object is so I can pull properties from the parent instead of
> storing
> > it in each child object.  So, I want to be able to do something like
> > $self->Parent->ClientName to get the client name of the survey a page
> object
> > is part of.
> > 	There are two ways that I can see of doing this, but they're both not
> > great.  The first would be to give the child a reference to the parent
> > object to store in a parent property, but this has problems with circular
> > references, and I'd probably have to do my own garbage collection.
> > 	The other is to pass a string containing the name of the variable
> > containing the parent object (i.e. "$Main::MySurvey") then use "no strict
> > 'refs'; $$Parent->whatever()" to de-reference it when it needs to be used.
> > This would keep garbage collection working, but wouldn't, I believe, be
> > storable, because the name would likely be different next time the script
> is
> > executed.
> > 	Anyway, I was hoping that in addition to the normal messages letting me
> > know that this is all a bad thing to do someone might have some advise on
> > setting my objects up like this. :)
> >
> > Thanks,
> > Peter Darley
> >
> >
> >  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> >      POST TO: spug-list at pm.org       PROBLEMS: owner-spug-list at pm.org
> >       Subscriptions; Email to majordomo at pm.org:  ACTION  LIST  EMAIL
> >   Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address
> >  For daily traffic, use spug-list for LIST ;  for weekly, spug-list-digest
> >      Seattle Perl Users Group (SPUG) Home Page: http://seattleperl.org
> >
> 


 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     POST TO: spug-list at pm.org       PROBLEMS: owner-spug-list at pm.org
      Subscriptions; Email to majordomo at pm.org:  ACTION  LIST  EMAIL
  Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address
 For daily traffic, use spug-list for LIST ;  for weekly, spug-list-digest
     Seattle Perl Users Group (SPUG) Home Page: http://seattleperl.org




More information about the spug-list mailing list