Slash Boxes
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 ]

sigzero (5768)

  (email not shown publicly)

I am the proverbial "accidental" programmer. I have found that I really like Perl and programming so I am pursuing that route now. I am the Debian systems administrator and junior Perl programmer for a company called Inspire.

Journal of sigzero (5768)

Thursday May 01, 2008
08:04 AM

What OO paradigm?

[ #36301 ]

There is the "standard" way to do Perl objects and there are these things called InsideOut objects that Object::InsideOut and Class::InsideOut help you with.

Do Perl programmers just stick with the "standard" or is InsideOut being used more?

I know there is Moose as well...

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • I've done a lot of OO in my Perl time, and I've never used Inside Out objects. I've never seen the point.

    Nowadays, I'd say that a standard is Moose, and that's what I use. It's far more featureful and clean than any of the Inside Out class helpers, and you can basically ignore the object implementation (hashref, arrayref, inside out, doesn't matter).
  • Do Perl programmers just stick with the "standard" or is InsideOut being used more?

    DISCLAIMER: I am biased [], and all my "facts" come secondhand from people who have switched to Moose, so take it with a big giant grain of salt.

    I have been seeing some blowback with Inside-Out objects, mostly centered around the difficulties with dumping them and the need for them to be DESTROY-ed to properly manage them. Most of the helper modules tend to try and fix these issues, but in doing so, they tend to break t

    • As the author of Class::InsideOut, I would say that people should only use inside-out objects if they have a particular need for doing so and understand the implications. No one should use inside-out objects "just because" or because they think it's a best practice.

      I still refer people to my YAPC talk [] as a good articulation of the issues.

      I've only recently had the opportunity to work with Moose and I'm very impressed with it -- though I found a bit of a steep learning curve trying to understand type co

      • I used to worry how much magic is going on behind the scenes in the dependency chain, ...

        The most magical bit is Sub::Name, followed by some of the XS we have in Class::MOP now (only about 20-30 lines of XS in total too). And recently some of the BestPracticalistas have been looking to make a Pure Perl alternative to that as well. In general we do our very best to keep core Moose as clean and easy to install as possible, and all the crazier stuff (see also MooseX::Compile) is in a different distro.

      • (Most of the FAIL's are older Perls or places where Scalar::Util is broken, I believe).
        The comedy here is that almost all of those FAILs can be eliminated by making esoteric Test::* dependencies optional.
  • To add to all the good comments here, I'd like to add that I'm not using Inside-Out objects, but rather standard hash-ref-based objects, usually with Class::Accessor, (or Class::Accessor::Fast), ADAMK's Object-Tiny [], and I've also done some work with Moose. I'm using everything but Moose mostly to get Accessors, and am still probably making little use of the Moose more-advanced features.

    The reason I dislike Inside-Out objects is because I feel that they're too much trouble (like dumping or introspectin

  • I think Class::Accessor (or similar) is a more common standard that inside out objects or moose.


    @JAPH = qw(Hacker Perl Another Just);
    print reverse @JAPH;