Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Backticks and other tricks
- X-seq: zsh-users 3758
- From: "Bart Schaefer" <schaefer@xxxxxxxxxxxxxxxxxxxxxxx>
- To: zsh-users@xxxxxxxxxx
- Subject: Re: Backticks and other tricks
- Date: Wed, 28 Mar 2001 15:41:42 +0000
- In-reply-to: <200103280900.LAA06786@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>
- Mailing-list: contact zsh-users-help@xxxxxxxxxx; run by ezmlm
- References: <200103280900.LAA06786@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>
On Mar 28, 11:00am, Sven Wischnowsky wrote:
}
} Mario Lang wrote:
}
} > Can anyone cast some light on the following questions
} > regarding the code below:
} > 1. Why does ${(P)...[...]} not work with subscripts of the
} > array? (in fucntion argsargs).
}
} `array', that's the point. The ${(P)1} yields an array (a *normal*
} array, not an associative array).
That's not directly the problem ... directly, the problem is that
${(P)1[$i]} first computes ${1[$i]} and then applies (P) to it.
If you get around THAT problem by using ${${(P)1}[$i]}, THEN you get
the problem Sven describes.
Given the relative precedence of flags and subscripts, there's no simple
workaround for this. We're just going to have to implement ksh namerefs
(not for 4.0.1).
} Currently I don't see a solution other than just not using an
} associative array at all
One can always be creative:
${(kP)1} gives an array of keys, so
${${(kP)1}[(i)$i]} gives the index of the key;
${(vP)1} gives an array of values, so
${${(vP)1}[${${(kP)1}[(i)$i]}]} is the answer.
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
Messages sorted by:
Reverse Date,
Date,
Thread,
Author