in reply to Re: Re: Looking for exportable privacy and protection
in thread Looking for exportable privacy and protection

a-la-Class::Struct, with exported functions that install accessors by means of eval
Perhaps, but Class::Struct may not be the best module to base your OO interface on since it's intent is to implement C structs in Perl. That and eval is evil ;)
using subroutine attributes, and perhaps variable attributes (still experimental in 5.8?)
It'd certainly look very nice syntatically, but I believe attributes are still somewhat of a grey area (esp. for variables).
installing methods on the fly using AUTOLOAD and *{$AUTOLOAD} = sub { do { this() and that() } } ;
This is certainly a nice way of generating accessor methods if somewhat heavy-handed (*anything* could be an accessor).

Unfortunately there is a fundamental flaw to this whole approach - it is *impossible* to have truly encapsulated classes in Perl without taking advantage of lexical scoping. So while closures may look like an abberation in your otherwise pristine code, it may be a necessity to achieve your goal of true encapsulation. I think I'll write a meditation on the whole subject of encapsulation in perl in the next week or so.
HTH

_________
broquaint

  • Comment on Re: Re: Re: Looking for exportable privacy and protection

Replies are listed 'Best First'.
Re: Re: Re: Re: Looking for exportable privacy and protection
by bronto (Priest) on Jul 11, 2002 at 12:04 UTC
    I think I'll write a meditation on the whole subject of encapsulation in perl in the next week or so.

    Great!!! You already have a ++ for it, and you'll get one from me on this reply as soon as I get my votes back (no votes to give for me today... weird...)

    Ciao!
    --bronto

    # Another Perl edition of a song:
    # The End, by The Beatles
    END {
      $you->take($love) eq $you->made($love) ;
    }