An alternative which I have used before in packages that I have written that demanded taint checking for security reasons, was to use the Taint module
- I used this, in combination with some code to 'unscrub' the passed parameters (as suggested by Tye
) to vet parameters passed to the package module I wrote before passing the details into a banking gateway package.
While this method doesn't give you the flexibility of having the perl interpreter die if tainted data is passed into an insecure statement, it does allow you to easily build 'taint checks' into your data in the same way - Yes, these checks could easily be done through weird alternatives for each section of code. This method with Taint.pm however, I feel is a better option, although I must admit it does take some forethought on the part of the programmer to identify insecure points of execution.