The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Acme::Tie::Eleet - Perl extension to 5pE4k 1Ik3 4n 3l337!

SYNOPSIS

!!!See the BUGS section below!!!

  use Acme::Tie::Eleet;
  print "This is eleet!\n";

  tie *OUT, 'Acme::Tie::Eleet', *OUT, case_mixer => "1/1";
  print OUT "This is eleet\n";

  Or, even, to translate instant sentences:
  perl -MAcme::Tie::Eleet -p -e ''

  tie $bar, 'Acme::Tie::Eleet', spacer => 0;
  $bar = "eleet";
  print $bar;

DESCRIPTION

Have you ever wanted to speak like an eleet? Do you feel like it's too difficult to do your case mixin' manually? Tired of being laugh at by your mates because your quotes don't make you look like an h4x0r? Well, there's a solution, and you're reading the documentation of the module specially made for u, Ye4h M4n!

This module basically allows you to perform a tie on filehandles, converting text written to it; or a tie on scalars, converting text they holds.

And since it's quite difficult to do urself a tie, the module will also tie the 2 (no, not the letter 'S', the figure, u b4st4rd) standard output file descriptors perl comes with (aka, STDOUT and STDERR). A simple use of the module and you're ready to go! Fe4R u5!

Parameters supported by tie (both TIEHANDLE and TIESCALAR)

o letters => <percentage>

The parameter allow you to transform letters to corresponding number (ie, transform l to 1, e to 3, etc.) with a given percentage. Default is 25 (1 char out of 4 being translitterate - if possible). That's 31337!

o spacer => <percentage>|<pattern>

Add extra spaces between chars. You can tell it to add random spaces with a given percentage. Eg, 'spacer => 50' will add about 1 space every two chars, whereas 'spacer => 0' will add no extra spaces. Or you can provide a pattern of the form "m/n" which will be understood as 'add an extra space after each of the m next chars, then do not add extra space after the n next chars'. For example, 'spacer => "1/1"' will add an extra space after one char out of two, whereas 'spacer => "1/0" will add extra spaces after each char. Default is 0 (no extra space). T h a t r o c k s !

o case_mixer => <percentage>|<pattern>

Put some chars into uppercase. You can tell it to convert random chars with a given percentage. Eg, 'case_mixer => 50' will convert a mean of 1 char every two chars, whereas 'case_mixer => 100' will convert every character. Or you can provide a pattern of the form "m/n" which will be understood as 'uppercase m chars, then do not uppercase the n next chars'. For example, 'case_mixer => "2/1"' will convert two chars, then left one char unchanged; whereas 'case_mixer => "0/1"' won't convert any chars. Default is 50 (random 1 out of 2). CaSE mIxIng RUleZ!

o words => <true>|<false>

Transform words given a dictionnary. For exampe, transform 'hacker' to 'haxor', and so on... Either true or false, default to false. Kewl stuff!

o add_before => <percentage>

Add some preamble randomly with a given percentage. For example, it could transform "this is my sentence." to "Yeah man, this is my sentence.". Default to 15.

o add_after => <percentage>

Terminate a sentence randomly with an hacker expression according to a given percentage. For example, it could transform "this is my sentence." to "this is my sentence, fear us.". Default to 15.

o extra_sent => <percentage>

Add randomly whole sentences to the filehandle. If filehandle is read from, it won't return the next chunk of text, but rather a leave it where it stands and return a sentence of its own. Default to 10. All your base are belong to us!

BUGS

/!\ WARNING: as of Perl 5.8.0, TIEHANDLE seems to be broken. So, I decided to remove ties on STDOUT and STDERR, and commented the relevant parts in the test suite.

Don't try to tie a filehandle if you're running a Perl version greater or equal to 5.8.0, because you will start a deep recursion loop as says Perl... I'll try to fix it when I'll find some time.

TODO

o

Find more h4x0R quotes to add.

o

Allow user to provide a dictionnary for words. Backward compatibility would be ok since a ref to a hash evaluates to true.

o

Allow user to provide a hash of quotes for both add_before / add_after. Backward compatibility would be ok since a ref to a hash evaluates to true.

o

Allow user to provide an array of quotes to add. Backward compatibility would be ok since a ref to a hash evaluates to true.

o

Allow tie-ing for input filehandle.

BUGS

Please report any bugs or feature requests to bug-acme-tie-eleet at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Acme-Tie-Eleet. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SEE ALSO

perl, the news://alt.2600 newsgroup, http://www.google.com/intl/xx-hacker/.

AUTHOR

Jerome Quelin, <jquelin at cpan.org>

COPYRIGHT & LICENSE

Copyright (c) 2001-2007 Jerome Quelin, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.