in reply to Re: Re: Re: OO Perl: calling a constructor within a class
in thread OO Perl: calling a constructor within a class

if(ref($me) && UNIVERSAL::isa($me,'my_class_name')) {

If you're doing a functional call, then there's no reason for the 'ref($me) &&' in that expression, though I think you get a warning on earlier versions of perl (not sure how early) if '$me' is undefined, so you might say:

if(defined($me) && UNIVERSAL::isa($me,'my_class_name')) {
Then again, you could just leave out the first part and turn off warnings locally :-)

Update: Correction by tye duly noted.
If I could transfer all the votes/XP from this node to yours I would...(maybe it could be a feature that our overworked fearless leader could implement someday :)

Replies are listed 'Best First'.
Re: Re: Re: Re: Re: OO Perl: calling a constructor within a class
by tye (Sage) on Sep 27, 2001 at 21:32 UTC

    No, you need the ref($me) to ensure that $me isn't just some string because UNIVERSAL::isa would then try to use that string as a package name to see if the named package inherits from your class. So to check whether $me is an object, you have to do both.

            - tye (but my friends call me "Tye")