On Wed, Jul 16, 2008 at 10:04:03AM -0700, Larry Wall wrote:
> On Sun, Jul 13, 2008 at 02:17:10PM -0500, Adrian Kreher wrote:
> : Hi,
> : 
> : I'm reviewing the tests in S09, and the file 
> : t/spec/S02-builtin_data_types/multi_dimensional_array.t uses the [0][0]  
> : indexing format interchangeably with [0;0].
> : 
> : These two formats mean two different things, correct? The [0][0] form isn't 
> : mentioned much in the spec, nor is [0;0] or if they interact somehow.
> I think they should come out to meaning the same thing, though the
> [0][0] form may be less efficient if it has to temporarily construct
> a slice of the next dimension of the array.  On the other hand, a
> naïve implementation of the multidimensional subscripter might just do
> the same thing internally for the semicolon, so it could be a wash.

Would it be counter-productive to specify that the implementation is allowed
to compile time optimise [$a][$b] etc to [$a;$b] etc?

I'm assuming that it is allowed for the implementation of a multidmentional
array to have different semantics for [$a][$b] and [$a;$b], but that seems
to violate good sense, much like overloading a class in Perl 5 (or any other
language) such that (++$a) and ($a + 1) are not the same.

Nicholas Clark

Reply via email to