![]() |
|
XP is just a number | |
PerlMonks |
Re^9: Perl Vs Rubyby Joost (Canon) |
on Nov 26, 2008 at 23:18 UTC ( [id://726253]=note: print w/replies, xml ) | Need Help?? |
I'll take your word for the compatibility features of Moose. I haven't seriously used it (yet).
I disagree with you here in regards to Perl. In Ruby they had to create a "standard library" of classes (Array, etc) because "Everything is an Object", whereas in Perl you could consider the standard library to be built-in (non-OO) arrays, hashes, scalars and the functions that operate on them. The problem is, perl's standard containers are conceptually objects just like custom-made perl objects, except the interface to them is completely different. So different in fact, that you can't use the standard iteration constructs (like foreach and while each), or calling/accessing ops (like (), [] and {}) on anything that implements a "normal" OO interface. And THAT means you can't use the familiar iteration constructs on any user-defined object, unless it sacrifices easy access to other potentially useful methods. In other words: the problem isn't that arrays and hashes aren't objects, the problem is that the perl programmer cannot reasonably define his own datastructures that can be accessed using the same interface the build-in types use. It's a problem of (access to/lack of) well-defined interfaces. And I stand by my assessment that tie() is an ugly hack that only half-way overcomes this issue.
In Section
Seekers of Perl Wisdom
|
|