I can't comment on 2), but as for 1) I would say no, definitely not.
When most people question the OO-ness of a supposedly OO language, usually it's because everything in the language is not an object. Alan Kay invented the term object-oriented to describe his language, Smalltalk, where everything is an object and all operations involve sending messages to objects.
Perl certainly doesn't fit Kay's definition, but even we use the more welcoming standard of the inheritince/encapsulation/polymorphism trio, I still think it doesn't pass, because Perl has no real object inheritance. Yes, you can inherit the methods from another class, but not objects. This results in cruft like this:
sub new { ... my $self = $class->SUPER::new; $self->{host} = shift; $self->{port} = shift; ... }
which clearly violates the law of encapsulation--as well as the law of abstraction--because you have to know the internals of the class you wish to inherit from, and then you go right on in and mess with it directly.
In reply to Re: Is Perl Truly an Object Oriented Language?
by William G. Davis
in thread Is Perl Truly an Object Oriented Language?
by awohld
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |