YAPC Day 1

davorg on 2003-07-23T15:41:34

Last minutes changes of schedule meant that I did my talk on Tieing and Overloading Objects in Perl today instead of on Friday. I've now put the slides online.

I'm currently sitting an ad-hoc session of london.pm talks listening to Piers talking about doing very scary things by overloading the global definition of bless!

Oh, and my new article is now on perl.com.


A question re: the article

VSarkiss on 2003-07-23T15:59:07

Very nice article, I liked it.

A question, though: I admit I don't understand all the magic behind overloading constants, but shouldn't the example on page 2

return __PACKAGE__->new($_[0]) || $_[1]
be testing the result of the constructor call with defined()? Is it possible, with all the overloading going on, that the result of new('0/1') would be interpreted as a number 0 and thus appear to fail?

about the article

malte on 2003-07-23T19:28:44

The article had some very nice examples in it, especially for the use of constant overloading. I used to think that was only good for confusing your coworkers with "zero but true"-hacks.

I'm not sure your arguments hold true, that the code would be less clean in Java. Having multiple methods would be much nicer in my opionion. Maybe it's just me, but I think that elsif is one of the ugliest constructs ever invented (right after the switch statement).

I know that its not possible in Perl, but I think its a shame that you cant implement the constructor in 3 lines using double dispatch (as described in Kent Becks pattern book).

For a very useful use of overloading, check out my module Class::Void

Disclaimer: I don't expect anyone to find my module useful, but I use it every day as way to make really dumb business objects :)