Your concerns about having them come back and bite you are probably warranted, in my experience. While it is certainly possible to write and maintain good code that uses global variables, it takes a level of dedication to self-discipline, and a good strategy to keep them separate from any other variables you may be using at any particular point in time.
Since you can create 'setter' and 'getter' functions for them, how about putting them in an object? Then you can pass the object around, and it will take less dedication to preserve the encapsulation around the variables.
There are several ways to do objects in Perl, depending on how much you want to do and how complex you want the result. I've heard good things about Moose, although I've yet to use it. (I normally work directly with inside-out objects, to reduce the number of dependencies.)