Hi nite_man,

If I use class names like ClassA and ClassB (because B is a system class), everything seems to work OK for me. I have had similar problems to those you describe when I tried to put multiple packages in the same file with nontrivial inheritance relationships.

Here's the code I tested:

package ClassA; use strict; use base qw(fields); use fields qw(id name); sub new { my $class = shift; $class->SUPER::new(); } sub getclass { my $self = shift; return ref($self); } 1;
package ClassB; use strict; use base qw(ClassA); use fields qw(addr phone city); use ClassC; sub addC { my $self = shift; $self->{c} = ClassC->new(); } 1;
package ClassC; use strict; use base qw(ClassA); use fields qw(model type); sub addB { my $self = shift; $self->{b} = ClassB->new(); } 1;
#!/usr/bin/perl -l # Test program use ClassA; use ClassB; use ClassC; my $a = ClassA->new(); my $b = ClassB->new(); my $c = ClassC->new(); print $a->getclass(); print $b->getclass(); print $c->getclass(); $b->{name} = 'bee'; print $b->{name}; $c->{name} = 'see'; print $c->{name}; $b->{city} = 'wok'; print $b->{city}; $c->{model} = 't'; print $c->{model};

In reply to Re: Cross reference between two classes and FIELDS by sgifford
in thread Cross reference between two classes and FIELDS by nite_man

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.