Yes, I agree with you both (of course).
in reply to Re^3: mod_perl / Apache::Registry accidental closures
in thread mod_perl / Apache::Registry accidental closures
The tricky bit about just passing in the variables is that you'd need to redefine the interface of the sub (that is, return the modified values instead of editing in place). Which - for the people who stand to benefit the most from this Tutorial - might be a lot of work. If your script began with global variables in the first place, there's a good chance the rest of the program is procedural in nature.
imp, Your solution with passing by reference is even better than ikegami's, in that I expect it to be easier to understand.