SPUG: How to deal with same name packages?

David Dyck dcd at tc.fluke.com
Mon Jan 14 17:29:57 CST 2002


I asked cpan for the Link module that you guessed might
be conflicting with yours.

cpan>  look Link
Warning: Cannot look Link, don't know what it is.
Try the command

    i /Link/

It reports that there is no Link module (there are
thinks link WWW::Link, but that has a different name.

Does your code try to extract the name of
the class by using ref()?

You also may want to start up you code in the perl
debugger and type the command

x \%INC
 and
x \@INC

to determine which modules are being loaded.


On Mon, 14 Jan 2002 at 14:24 -0800, c k <thasone at yahoo.com> wrote:

> Is there a way to deal with same name
> packages/modules/classes/objects in perl?
>
> I created a Link.pm and used that with LWP in a main
> script (e.g., put use Link; and use LWP; near the
> top).  I believe my Link.pm is clashing with another
> module named Link.pm in LWP, because when I change my
> Link.pm to Lynk.pm things work fine.
>
> Besides changing my module name from Link.pm to
> Lynk.pm, is there another way to deal with same name
> packages in Perl?  For example, in C you can do this,
>
> #if !defined LinkH
> #define      LinkH
>
> some stuff ...
>
> #endif
>
> Can I do that in Perl?  Is there a technique for doing
> that?

perl comes with a tool call h2ph
 (It may not do what you think you want,
  but it does defer execution via eval)

if you give it input like:
#if !defined LinkH
#define      LinkH

 some stuff ...

#endif

It creates a file like this:

require '_h2ph_pre.ph';

if(!defined (defined(&LinkH) ? &LinkH : 0)) {
    eval 'sub LinkH () {1;}' unless defined(&LinkH);
}
1;


 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     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://zipcon.net/spug/





More information about the spug-list mailing list