Andy ~

Since you didn't mention it in your references, you may want to
check out RFC 92, Extensible Meta-Object Protocol -- Method Search
at http://tmtowtdi.perl.org/rfc/92.pod

RFC 92 considers an existing Perl 5 module we have that allows
us to write code like the following, and it considers how to make
Perl 6 better support this kind of extensibility via modules (rather
than via new core functionality forced on us all).

    package MyClass; use Prothos::Class ISA => ParentClass;

    ivar Foo => Public,    Write   => Private;
    ivar Bar => Private,   Default => "Hello, World";
    ivar Baz => Protected, Default => {};  # Hash ivar.

    method HelloWorld => Public, sub
    {
        my ($I, %A) = @_;

        $I->Baz(Name => $A{Name});         # Ivar accessor.

        print $I->Baz("Name"), " says \"", $I->Bar, ".\n";
        };

    method Cogitate => Private, sub
    {
        ...
        };

    method OverrideMe => Protected, Bind => Virtual, sub
    {
        ...
        };

Our little class generator does the things we need, without taxing
our conceptual notion of what Perl OO looks like.  As far as I can
tell, RFC 95 doesn't do the things we need, while taxing our notion
of what Perl OO looks like.  So I guess you can chalk up my comment
to be "skeptical", at least for now.

Yours, &c, Tony Olekshy

Reply via email to