Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

davorg (18)

davorg
  dave@dave.org.uk
http://dave.org.uk/
Yahoo! ID: daveorguk (Add User, Send Message)

Hacker, author, trainer

Technorati Profile [technorati.com]

Journal of davorg (18)

Monday October 29, 2007
04:04 AM

Belgian Perl Workshop

[ #34779 ]

On Saturday I spoke at the first Belgian Perl Workshop. I extracted the section on OO Perl from the teach-in. I've put the slides online.

I had a great time. It was good to meet up with a few European Perl Mongers. Thanks to Gilles and his crew for organising it. I hope to be invited back next year (did I mention that I love Brussels?)

I'm sorry that I had to leave at about lunchtime. I had brought the whole family to Brussels with me and we had an appointment with Mini-Europe :-)

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • First, let me say that's a great presentation -- I really like the focus on design issues, rather than the usual construction issues. I also like how you avoided the "religious" wars on getter/setter styles and just advised "pick a method and stick with it".

    However, while I know you were intentionally using simplified examples, the inside-out examples have a subtle, but potentially dangerous flaw:

    $name{$self} = shift;

    This will silently "break" if $self is overloaded to stringify as something other t

    • You're absolutely right about the problems (of course). But, in my defence, I didn't have the time to go into that level of detail. All I was trying to do was to give people a high-level overview of the concepts.

      I think that in future, I'll end that section with something along the lines of "that's basically how it works, but don't try to build classes like these yourself - instead use one of these modules as a base as they solve a number of problems that I haven't had the time to explain here."

      • You don’t have to explain the issues in any detail. Something like the following should suffice: “That refaddr there gives us the memory address of the reference, much like if you stringify it – but it guards against some issues I don’t have the time to expound on. Note that this isn’t thread-safe due to the use of addresses, but can be made so – again, I don’t have time to explain how. In practice, just use the Foo module and that’ll take care of these things