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/; }; }
_________
broquaint
In reply to Re: Can you prevent MO=Deparse
by broquaint
in thread Can you prevent MO=Deparse
by zentara
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |