In article <20000201013158.A196328@linguist.dartmouth.edu>, Ronald J Kimball <rjk@linguist.dartmouth.edu> wrote: >On Mon, Jan 31, 2000 at 11:40:11PM -0500, Andrew Pimlott wrote: >> On Mon, Jan 31, 2000 at 11:01:16PM -0500, Jeff Pinyan wrote: >> > You can get this kind of override by doing this (although it's damn slow): >> > >> > %hash = (%values_get_overridden, %hash); >> > %hash = (%hash, %values_override_hash); >> >> Of course, but if those %'s were @'s, you'd say, "No, silly! That's >> what unshift and push are for!". I want to be able to say the same >> thing for hashes. Graham Barr did a patch for this about a year ago (see the Jan'99 thread "hash concatenation" on comp.lang.perl.moderated). It doesn't seem to have gotten in. > >And if those were @'s, then the data structures would be inherently >ordered, contiguous, and indexed numerically. > >> You may be able to optimize your examples under the hood, but I would >> find this optimization highly unintuitive. Is there currently any list >> context in which arrays or hashes are magically not expanded? > >It does not matter whether the optimization is intuitive or not. The >optimization is completely hidden from the user; there is no need to intuit >it. The behavior would be the same as it always has been. Despite apparent support for such an optimization, it doesn't seem to have been done. Assuming %hash = 1..2000, try timing %hash = %hash, 1..6 vs. @hash{1,3,5} = (2,4,6). With an optimization they should be close to the same; without, there is a difference of a few orders of magnitude. > >> PS. I support delete and exists on arrays ;) > >P.S. I support file test operators on regular expressions. You're missing the subtext here. delete and exist on arrays will be in 5.5.64 (and presumably in 5.6). This raised quite a ruckus on p5p even after Larry Wall blessed it and indicated no further discussion was needed. ==== Want to unsubscribe from Fun With Perl? Well, if you insist... ==== Send email to <fwp-request@technofile.org> with message _body_ ==== unsubscribe