The "Bad descriptor" error is likely a red herring. Try printing $^E instead of $! in your error message, it will probably give you a better idea of what is failing.
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.