in reply to Scope of Hash variable

Well since you're not locally scoping any of your variables, I imagine they will all be global forever. Perhaps you are messing yourself up by returning @List from your subroutine instead of @Array? PLEASE 'use strict'. It would have caught this mistake.