I am pleased to hear that you solved your problem yourself. Are you aware that this new solution is still not compliant with
strict refs? You have already demonstrated the problem with this. Minor changes can break your code in ways that are very hard to debug. Not a good idea for a widely used module! At the very least, I would recommend that you specify
use strict for the whole program. Specify
no strict refs in the smallest possible scope.
It now sounds like your real problem is how to change the default output of your module. Look at the library function select. It may do exactly what you want.