[ksh93-integration-discuss] Dereferencing an array name reference
David Korn
dgk at research.att.com
Wed Sep 19 15:55:25 PDT 2007
cc: rbtneville at gmail.com
Subject: Re: [ksh93-integration-discuss] Dereferencing an array name reference
--------
> While educating myself about the new ksh features I stumbled over a
> behaviour which I do not understand. The example below tries to
> dereference a name reference but only returns the name of the variable
> but not the array index:
> % ksh93
> $ typeset -A a
> $ a[x]=5
> $ nameref l=a[x]
> echo "${!l}"'
> a
>
> I expected a[x] as output. Is this a bug or do name references only
> apply to variables and not their index?
> --
> robert neville - it consultant
I will classify this as a bug and it also uncovers another bug
or at least undocumented behavior.
Currently,
${!x}
should provide the name for variable x following references, so
it should have displayed a[x] in this case. (I will fix this
and also will not allow the [..] to be treated as a character class
even if not quoted.
Currently ${!x[@]} or ${!x[*]} expand to the subscripts (or 0 if x is
not subscripted).
However, the behavior of
${!x[foo]}
is currently undocumented and currently outputs foo. This will be changed
to output
x[foo]
so that
${!x[2+2]}
will output
x[4]
This will be in ksh93t.
David Korn
dgk at research.att.com
More information about the ksh93-integration-discuss
mailing list