in reply to multiple passes by reference

dws says most of what needs to be said. The rest of the answer to your question hinges on what you want to do with the data passed from one sub to the next. Is the intent to alter the original data? Does it matter if the data is altered? Is the data guaranteed not to be altered? These questions do not change with the number and scope of cascaded subs passing data to one another. Assuming you have control over the fate of the data then it is generally more efficient to pass refs.

Based on the phrasing of your original query it sounds like passing the same ref is the way to go since you don't seem to need to work on copies.

Matt

(updated for grammatical clarity)