Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: Re: Modules included more than once

by physgreg (Scribe)
on Aug 22, 2002 at 11:19 UTC ( #191982=note: print w/replies, xml ) Need Help??


in reply to Re: Modules included more than once
in thread Modules included more than once

I've done a bit more digging, and it appears that there is a circular include going on:
package OBJECT_SERVICES; use SUPPORT; use SUPPORT qw( %typeConvert %enumeratedTypes);
and
package SUPPORT; use OBJECT_SERVICES;
I'm not sure how to get round this, as both packages use functions from the other package. I know this looks terrible.
Would it make sense to make another package containing the functions used by both packages, and use that in both, rather than the way it's done now?
Thanks,
Greg.

Replies are listed 'Best First'.
Re: Re: Re: Modules included more than once
by dada (Chaplain) on Aug 22, 2002 at 11:28 UTC
    the problem is not in circular includes. circular includes are just fine. I suspect the problem is in:
    package OBJECT_SERVICES; use SUPPORT; use SUPPORT qw( %typeConvert %enumeratedTypes);
    why do you use SUPPORT twice? the second use should be enough.

    cheers,
    Aldo

    King of Laziness, Wizard of Impatience, Lord of Hubris

      It's probably cause he's doing stuff he shouldn't be doing.
      perl -Mstrict -w -MCGI -MCGI=*table -e 1 perl -Mstrict -w -MCGI::Carp -MCarp -e 1
      The Carp does it cause has to perform magic. That is why you should use warnings;
      perl -Mstrict -Mwarnings -MCGI::Carp -MCarp -e 1

      ____________________________________________________
      ** The Third rule of perl club is a statement of fact: pod is sexy.

      I suspect that there is something going on with my circular includes, as I do not get the warning if I remove one half of circle. I think the problem is caused by 'use' commands in each module interacting badly with 'use' commands in the super-package that ties everything together. As the modules are never used except through this, I have removed all the redundant calls, and the warnings seem to have disappeared.
      Thanks to everyone for their help!

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://191982]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (2)
As of 2022-08-19 07:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?