I don’t l like Perl’s OO…

November 11th, 2004 at 4:01 pm

I’m now trying to convert my Perl MIX (Knuth’s machine he uses to give programming examples in TAOCP) simulator to a class. Some observations:

  • No built in support for private methods - annoying. Sure, there are hacks like my $methodref = sub {…, but this makes calling methods clunky. I realize that Perl’s philosopy is that there’ no real need for private methods - but those DO have their uses…
  • Only now I notice how annoying the whole $self-> thing is. It’s like calling everything through this in C++. For instance, in the simulator, to access the rA register, I must now do $self->rA. To access rI6, I must do $self->rI->[6], etc. This is really inconvenient !

Hmm… maybe I’ll just go with a simple package for now - there, using Exporter and my variables, good encapsulation can be achieved, and I won’t have to use $self all the time. I guess I’ll wait for Perl 6 with its built-in OO support to reimplement it as an object.

Funny, I’m not usually an OO proponent - I believe that the best tool for the job must always be used, and sometimes this tool is OO. However, once I do use OO in Perl (not too often), I find it not too convenient and natural.

Related posts:

  1. Win32::OLE with Perl, Open Office
  2. MIX implementation in Perl completed !
  3. Compiling C DLLs and using them from Perl
  4. becoming unhappy with use.perl.org
  5. perl annoyance

Leave a Reply

To post code with preserved formatting, enclose it in `backticks` (even multiple lines)