Ce module ne sert à rien tout simplement parce qu'une fois qu'un script est passé entre ces mains, le code source en devient totalement illisible, mais surtout il y a de fortes chances qu'il soit buggué. À utiliser donc avec attention, seulement sur une toute petite partie de code et faire les tests nécessaires.
Le module Acme::Smirch permet un rendre un code source
fonctionnel et pourtant totalement illisible, il suffit de ceci :
use Acme::Smirch;
Acme::Smirch::smear("sm3.pl");
Pour transformer le source du fichier en quelque chose qui ressemble à cela :
$==$';$;||$.|$|;$_='*$(^@(%_+&~~;#~~/.~~;_);;.);;#); ~~~~;_,./@,.;_,.;#,./.,./@~~;_,.~~,.*+,./|~~;_);@-,.; .);~~,./@@-__@-__);;.);;#,.;.~~@-);;#);;;);~~,.*+,.; #);;;;#-(@-__@-__);@-);~~,.*+,./|);;;~~@-~~~~;./.);; ...
L'avantage étant que ce code résultant peut être éxécuter sur
une machine qui ne dispose pas du module Acme::Smirch .
À noter que dans le même genre, le module Acme::Bleach a un
comportement identique aux deux différences que le code source
filtré ne contient rien d'autre que l'appel au module et qu'il
nécessite la présence du module sur la machine cible. Ce second
module est à prendre avec les mêmes précautions que son petit
frère au regard des effets de bords qu'il génère.