SPUG: How to deal with same name packages?

Matt Tucker tuck at whistlingfish.net
Mon Jan 14 17:13:45 CST 2002


-- c k <thasone at yahoo.com> spake thusly:

> 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?  

The best way to do this is just give it a different name. Fortunately,
namespaces in Perl include the path, so 'package Link' is not the same
as 'package LWP::Link' or 'package HTTP::URL::Link' (not that said
packages exist).

Just out of curiosity, is it possible that you're not putting a package
declaration in your Link.pm? Does it make a difference if you switch
the order of the use statements?

It also might help if you gave actual error messages and code snippets.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 232 bytes
Desc: not available
Url : http://mail.pm.org/archives/spug-list/attachments/20020114/575de685/attachment.bin


More information about the spug-list mailing list