$ perl code3.pl
string is Rumpelstiltskinrumpelstiltskindisestablishmentarianism Camel Camel The the T t Tt he h e he e
code is Gzv
code is rQ
code is Z9z
code is FMp
code is Urm
code is kCd
code is oC2
code is 71G
code is Xyy
code is 912
code is 4Ja
code is BHX
code is Ats
code is syv
code is iRP
code is Lwn
default is Rumpelstiltskinrumpelstiltskindisestablishmentarianism
default is Camel
default is Camel
default is The
default is the
default is T
default is t
default is Tt
default is he
default is h
default is e
default is he
default is e
Gzv Z9z Z9z FMp Urm kCd oC2 71G BHX 912 Ats BHX Ats
Rumpelstiltskinrumpelstiltskindisestablishmentarianism Camel Camel The the T t Tt he h e he e
$VAR1 = {
'e' => 'Ats',
'the' => 'Urm',
'Camel' => 'Z9z',
'T' => 'kCd',
'he' => 'BHX',
'Rumpelstiltskinrumpelstiltskindisestablishmentarianism' => 'Gzv',
'h' => '912',
'The' => 'FMp',
't' => 'oC2',
'Tt' => '71G'
};
$
####
#!/usr/bin/env perl
use strict;
use warnings;
use Data::Dumper;
use List::Util qw( shuffle );
use v5.12;
use File::Slurp;
use Path::Class;
my $str = shift || 'Rumpelstiltskinrumpelstiltskindisestablishmentarianism Camel Camel The the T t Tt he h e he e';
say "string is $str";
my( @codes, %encode );
my @base = ('a' .. 'z', 'A' .. 'Z', 0 .. 9);
for my $i (@base) {
push @codes, $i;
for my $j (@base) {
push @codes, "$i$j";
for my $k (@base) {
push @codes, "$i$j$k";
}
}
}
@codes = shuffle @codes;
# write to file
my $path = '/home/twain/Desktop';
my $file = 'code1.txt';
my $code_sheet = file($path,$file);
write_file( $code_sheet, "@codes \n" ) ;
for my $i (0..15) {
say "code is $codes[$i]";
}
for (split /\s+/, $str) {
say "default is $_";
$encode{$_} = shift @codes;
}
$str =~ s/([A-Za-z0-9.]+)/$encode{$1}/eg;
print $str,$/;
my %decodes = reverse %encode;
$str =~ s/(\w+)/$decodes{$1}/eg;
print $str,$/;
my $refhash = \%encode;
print Dumper $refhash;
__END__
=head1 NAME
non-formula-based-text-encoder-with-compression.pl
=head1 DESCRIPTION
=over 4
=item * Create 242,234 unique codes, 1-3 characters in length, from the characters {a-zA-Z0-9}.
=item * 62 (1 char codes) + 3844 (2 char codes) + 238,328 (3 char codes) = 242,234 unique codes.
=item * (Somewhat like MIMEbase64 encoding, but my encoding is non-formula based.)
=item * codesheet to be saved for look-up
=back
=cut
####
sudo apt-get install perl-doc
perldoc code3.pl