XP is just a number | |
PerlMonks |
comment on |
( [id://3333]=superdoc: print w/replies, xml ) | Need Help?? |
Well, so what? You _do_ know the working of Perl, don't you?
Actually I didn't know about use module (); never having had a need to use it I never bothered to learn it. Usually I've either wanted new subs directly in my name space or I use an instance w/instance methods. I've never used a module which had an interface that should have done the former, but did the latter instead. Just lucky I guess. :) I'll yield that name clashes probably aren't that big of a deal. And for what is essentially a one-function module, I'd probably opt for explicitly exporting that function (too bad Lingua::EN::Numbers' internals are so messy that this isn't really possible without an interface or a serious rewrite), especially given that there is a way to prevent it (and thanks for pointing that out). 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. A module author using Exporter is using OO-- subclassing, I believe-- and to good effect. Whether they provide a constructor and instance methods or just class methods is a different story. In the example module it might have been avoided-- but what if you want to have a number-to-English machine that does British working alongside one that does American? You'll need to have two instances of the machine, which I think was the motivation here (no matter how bizarre the result was). This would not have precluded making get_string both an instance and a class method and having the class method rely on a default/class variable for locale. In reply to Re: Re: Use modules or roll your own?
by ichimunki
|
|