Brian Candler wrote: > In that case though, I can't see why it is taking dup copies of the > elements: it passes them to File.lstat, Dir.open and File.join, but I don't > think any of those modify their string arguments. Perhaps not, but what about when it is used with a block, into which the elements are yielded? The block might call modifying methods on the strings or objects given. Of course, that will usually be in the same scope as the method is called, so it would seem rather obvious, but once you start using Proc objects, it can be a nightmare understanding why your string objects are shapeshifting on you. Just my 0.02 NOK... -- (\[ Kent Dahl ]/)_ _~_ __[ http://www.stud.ntnu.no/~kentda/ ]___/~ ))\_student_/(( \__d L b__/ NTNU - graduate engineering - 5. year ) ( \__\_õüõß/__/ ) _)Industrial economics and technological management( \____/_öß\____/ (____engineering.discipline_=_Computer::Technology___)