You can now catch the open at STDERR. That's a Good Thing.
On the other hand you're now bound to do it. Before it's gone wrong too, but you didn't feel it, because Email::Validate got the heat. If you rebless your tied()-objekt to IO::File or so in the OPEN-sub you should be in the clear. Condition is: Your object is a glob.