Larry Wall <[EMAIL PROTECTED]> wrote: > On Tue, Apr 19, 2005 at 02:02:41PM +0000, Ingo Blechschmidt wrote:
>: # Possibility #2 >: multi sub *postcircumfix:<'[', ']'>(TiedArray $self, $index) { >: # Body as above >: } > None of those are quite right, because you have to be prepared to deal > not only with slices, but with multiple dimensions of slices. Then again the question arises, if all the possible indexed access isn't clearer written as multi subs: multi sub *postcircumfix:<[ ]>(TiedArray $self, int $index) {...} multi sub *postcircumfix:<[ ]>(TiedArray $self, Int $index) {...} multi sub *postcircumfix:<[ ]>(TiedArray $self, Slice $index) {...} multi sub *postcircumfix:<[ ]>(TiedArray $self, MyDims $index) {...} or with FETCH and STORE as distinct variants too, and r/w ... > That's the philosophy, anyway. It may yet turn out that proxying > completely fouls up the optimizer in this case. Sometimes a > cut-and-paste has the benefit of being concrete enough for the > optimizer to understand, whereas the abstraction is too, er, abstract. Yep. > ... However, that being > said, there's enough flexibility in the FETCH/STORE proxy that you > could "defactor" the identification code out to the various handlers > and get the same benefit. Well, isn't the "defactorized" code just a bunch of multi subs? > Larry leo