in reply to Re: Re: Use modules or roll your own?
in thread Use modules or roll your own?
But what if my program already has a get_string() function or an %N hash, and I add this module after the fact?Well, so what? You _do_ know the working of Perl, don't you? Then you _do_ know that if you do:
the import() routine isn't called, and nothing will be exported. In which case, you can still use the function by calling it like:use Module ();
But a name clash is an exceptional case - normally you don't have a name clash (I've been programming Perl for over 6 years now, I cannot recall ever having had a name clash problem), and you can just use the short get_string. But with a class method, you have to use Module -> sub, even if it's not necessary.Module::get_string ()
The OO isn't really pointless. It's happening either way-- exporting symbols without being asked to do so is just a sneaky way of concealing it is all.Exporting symbols without being asked is only a sneaky way if there isn't an easy way to avoid it. All you need to do is ask to _not_ import anything. That takes a whopping two characters. A module author using Exporter gives the programmer a choice - a module author using OO to avoid name clashes doesn't. I know who acts Perlish, and it ain't the latter programmer.
As for the %N of Lingua::EN::Numbers::Easy, let me quote from the manual:
By default, "Lingua::EN::Numbers::Easy" exports a hash
"%N" to the importing package. Also, by default, "Lin-
gua::EN::Numbers::Easy" uses the British mode of "Lin-
gua::EN::Numbers". Both defaults can be changed by
optional arguments to the "use Lingua::EN::Numbers::Easy;"
statement.
The first argument determines the parsing mode of "Lin-
gua::EN::Numbers". Currently, "Lingua::EN::Numbers" sup-
ports British and American. The second argument deter-
mines the name of the hash in the importing package.
use Lingua::EN::Numbers::Easy qw /American %nums/;
would use American parsing mode, and "%nums" as the tied
hash.
If %N gives you a name clash, just use any other suitable name.
OO isn't the only way of solving name clash problems!
Abigail
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Use modules or roll your own?
by ichimunki (Priest) on Jul 29, 2002 at 18:19 UTC |