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