Thank you. I was wondering after reading the original post why he was using the context (list or scalar) to determine whether to operate on a copy or the original. What does "a copy or the original" have to do with "list or scalar context" in general? Nothing! If you want to operate on a copy, grab a copy and operate on it.
Although, I might be misunderstanding what is going on.