I agree that global variables are almost always undesirable. I do not think that accessing the same variable by reference rather than by name justifies the added complexity. Perhaps it would be better to restrict the scope of the 'global' variable by placing it in a subroutine along with the call to find.