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