use 5.014000;
use strict;
use warnings;
-
-require Exporter;
-
-our @ISA = qw(Exporter);
-
-# Items to export into callers namespace by default. Note: do not export
-# names by default without a very good reason. Use EXPORT_OK instead.
-# Do not simply export all your public functions/methods/constants.
-
-# This allows declaration use Text::Homestuck ':all';
-# If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
-# will save memory.
-our %EXPORT_TAGS = ( 'all' => [ qw(
-
-) ] );
-
-our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
-
-our @EXPORT = qw(
-
-);
-
+use parent qw/Exporter/;
+our @EXPORT = qw/aradia tavros sollux karkat nepeta kanaya terezi vriska equius gamzee eridan feferi/;
our $VERSION = '0.000_001';
-$VERSION = eval $VERSION; # see L<perlmodstyle>
-
-# Preloaded methods go here.
+sub filter {
+ my ($name, $code) = @_;
+ no strict 'refs';
+ *{$name} = sub (;$){
+ local *__ANON__ = $name;
+ if ($_[0]) {
+ local $_ = $_[0];
+ $code->();
+ $_
+ } else {
+ $code->();
+ $_
+ }
+ }
+}
+
+filter aradia => sub {
+ y/A-Z/a-z/;
+ y/,.?//d;
+ s/o/0/g;
+};
+
+filter tavros => sub {
+ y/a-zA-Z.!?/A-Za-z,,,/;
+ s/:\)/}:)/g;
+};
+
+filter sollux => sub {
+ y/A-Z/a-z/;
+ y/s/2/;
+ s/i/ii/g;
+ s/to/two/g;
+ s/\b(fuck|joke|kk|aa)\b/\U$1/g;
+};
+
+filter karkat => sub {
+ y/a-z/A-Z/;
+ s/\bD:/D:B/;
+};
+
+filter nepeta => sub {
+ y/A-Z/a-z/;
+ s/ee/33/;
+ $_ = ":33 < $_";
+};
+
+filter kanaya => sub {
+ y/,.!?'//d;
+ s/\b(\w)/\u$1/g;
+};
+
+filter terezi => sub {
+ y/a-z/A-Z/;
+ y/AIE/413/;
+ s/(!|\?)/$1$1/g;
+ s/:\]|:\)/>:]/g;
+};
+
+filter vriska => sub {
+ y/Bb/88/;
+ s/:\)/::::\)/g;
+ s/D:/D::::/g;
+};
+
+filter equius => sub {
+ s/strong/STRONG/g;
+ s/strength/STRONGNESS/g;
+ s/x/%/ig;
+ s/loo/100/ig;
+ s/ool/001/ig;
+ s/[?.!]$//;
+ $_ = "D --> $_";
+};
+
+filter gamzee => sub {
+ y/[A-Z]/[a-z]/;
+ s/([a-z])(.)/$1\u$2/g;
+ s/:\)/:o\)/g;
+};
+
+filter eridan => sub {
+ y/',.?!//d;
+ s/w/ww/g;
+ s/v/vv/g;
+ s/ing/in/g;
+ s/want to/wanna/g;
+ s/going to/gonna/g;
+};
+
+filter feferi => sub {
+ s/H/)(/g;
+ s/E/-E/g;
+ s/:\)/38)/g;
+};
1;
__END__
=head1 SEE ALSO
-Mention other useful documentation such as the documentation of
-related modules or operating system documentation (such as man pages
-in UNIX), or any relevant external documentation such as RFCs or
-standards.
-
-If you have a mailing list set up for your module, mention it here.
-
-If you have a web site set up for your module, mention it here.
+Homestuck: L<http://mspaintadventures.com/?s=6&p=001901>
+The mspa wiki page listing the quirks: http://mspaintadventures.wikia.com/wiki/Typing_Quirk
=head1 AUTHOR