in reply to Can you prevent MO=Deparse
Short of removing the Deparse module, is there a way to write a script which will prevent it from being dumped by DeParse?In theory, no, since -MO=Deparse will mean that B::Deparse is processed before any other modules, and therefore at the top of the BEGIN chain, and since it sets the minus_c switch, no other code can be run (except for anything in a BEGIN/CHECK block of course). But inevitably the argument will come down to the fact that you can't hide perl's source (see. Here is a commercial obfuscator for an interesting discussion on the matter of source obfuscation).
This won't work in your case, but I thought I'd put it up for amusement value anyways
If this code is placed before -MO=Deparse or a use O 'Deparse' then the deparsing will be skipped.## place before use O 'Deparse'/-MO=Deparse BEGIN { unshift @INC => sub { ## 'empty' should be a valid module open(F, "empty") and return *F if $_[1] =~ /O.pm|B.pm/; }; }
HTH
_________
broquaint
|
---|
In Section
Seekers of Perl Wisdom