You cannot hide from B::Deparse. Well, if you compiled your module to a C library using B::C or B::CC and wrote a C interface for that then wrote an XS to use the C. Even then the optree is still there, somewhere; and a determined reverse engineer (and believe me there will be one) could still hunt the optree down, put it into a form that B::Deparse would like and Deparse it. That and this setup would be an extreme headache to manage.