Allison Randal wrote:

> Hmmmm... this being the case, is there any reason we should ever need to
> name the invocant explicitly?

Yes. To make it read-writable. 

Perl makes that much easier than most other languages, because you can pass
the invocant by (writable) reference, so you don't need to pass a separate
$parent pointer:

        method Tree::delete(Tree $self is rw:) {
                if $.left_child {
                        $.left_child.insert($.right_child) if $.right_child;
                        $self = $.left_child
                }
                elsif $.right_child {
                        $self = $.right_child
                }
                $.right_child = $.left_child = undef;
        }

Damian

Reply via email to