The way you've got them set up, which() and what() can only be used as functions, not as methods, right? I have mixed feelings on the suggestion. I'll express what I see as the pros and cons, and maybe you can let me know what I'm leaving out.
Pros to exporting functions for this tied array class:
- Simpler interface -- Doesn't require Object Oriented understanding.
- Faster -- Object oriented solutions have extra overhead (but a tied array is an object anyway, and the functional which() and what() do even more extra work in discovering the object of the tie).
Pros to using the OO interface:
- which() and what() are not exactly uncommon words. Reserving them as object methods keeps them from mucking up global namespace.
- which() and what(), as names, make more sense to me when they're directed to a tied object, than to an array reference. $tied_array->which() means more to me than which(@array), because it tells me (the casual reader) that which() is a method of this class, rather than just some exported funtion from who-know-which package.
But I am not necessarily seeing the whole picture, and I value your opinion, so please do let me know what arguments would best support exporting which() and what() as functions. ...If I were to go ahead an implement that suggestion, I might export them with more explicit names, such as which_index() and what_value()... or some-such.
I like your use of Carp croak(). I'll look at working that into the code in the meantime.
| [reply] [d/l] [select] |
The main reason I create functions instead of methods for my tied data types is because tying variables is supposed to be a transparent act, and calling a function with that array should be just as transparent.
_____________________________________________________
Jeff japhy Pinyan,
P.L., P.M., P.O.D, X.S.:
Perl,
regex,
and perl
hacker
How can we ever be the sold short or the cheated, we who for every service have long ago been overpaid? ~~ Meister Eckhart
| [reply] |