jahero has asked for the wisdom of the Perl Monks concerning the following question:
Hello wise monks!
I would like to ask a (probably) newbie question in regards to namespaces and names collisions.
Lets say that I have something like this in my code (shortened, incomplete).
package Something::BufferedRead; use strict; use warnings FATAL => 'all'; use File::Basename; our $VERSION = 1.00; my $BUFFER_SIZE = 1048576; sub new { my $class = shift; my @data = @_; my $self = {}; bless $self, $class; return $self; } sub basename { my $self = shift; return basename($self->{cfg}->{filename}); }
Now this fails to compile since 'basename' collides with name of sub imported from module File::Basename. Obvious solution would be to change name of my sub, for example to 'base_name', however I want to understand what exactly is going on, and how to prevent this from being pain in the future.
Which leads me to the real question.
Thank you for your time!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Namespaces & colliding names
by Athanasius (Cardinal) on Nov 08, 2016 at 08:24 UTC | |
by Anonymous Monk on Nov 08, 2016 at 09:15 UTC | |
|
Re: Namespaces & colliding names
by kcott (Archbishop) on Nov 08, 2016 at 09:26 UTC | |
by jahero (Pilgrim) on Nov 08, 2016 at 09:34 UTC | |
|
Re: Namespaces & colliding names
by shawnhcorey (Friar) on Nov 08, 2016 at 14:18 UTC | |
by jahero (Pilgrim) on Nov 09, 2016 at 08:29 UTC |