Actually, I don't see anything wrong with creating accessor or mutator methods with Autoload. Class::MethodMaker does that, and it's very useful for simple classes. I've used Autoload to come up with accessor methods. The trick is to document the methods as though they were normal. After all, implementation shouldn't be part of the interface anyway.
Worrying needlessly about syntax, and which is better, seems counterproductive to me. Any vaguely workable syntax becomes transparent after about a month of use. :)
If you like Perl, but enjoy your object orientation more pure than Perl offers, you might want to look at Ruby. It's not a Perl-killer yet-- it lacks DBI classes AFAICT, among other things-- but it has some of the purest object-orientation I've ever seen. (Example: what do you do when you want something looped five times? You tell the number five, "Do this!")
It's true that doing object-oriented Perl requires more self-discipline than some other languages. I actually see this as a good thing. Writing OO Perl forces you to think about your design and stick with it. In more enforced object-oriented contexts, it's easier to forget that OO is a design quality, not a language quality.
Oh, and to metoo merlyn, you should definitely, definitely read Object-Oriented Perl.
Update: In the interest of accuracy I'll correct myself-- Class::MethodMaker doesn't generate accessors on autoload; it autogenerates them on class load. In terms of the argument, though, I personally don't see a difference, as such matters would be hidden from other classes.
stephen
In reply to Re: Perl and Objects, how do you resolve the two?
by stephen
in thread Perl and Objects, how do you resolve the two?
by frankus
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |