記号PerlでFizzBuzz

Nov 18, 2011

Yokohama.pm #8

id:sugyan

Self-introduction

my $profile = +{
    id   => 'sugyan',
    name => 'すぎゃーん',
    age  => 0x1C,
    lang => ['Perl', 'Node.js'],
};

FizzBuzz

Write a program that prints the numbers from 1 to 100. But for multiples of three print "Fizz" instead of the number and for the multiples of five print "Buzz". For numbers which are multiples of both three and five print "FizzBuzz".

My answer

"^                                 "
=~                                 (
("(").("~"^"."^"^"^(""=="")."").("^"
^"="^(""=="").""^")").("^"^".").("="
^"~"^(""=="")."").("("^(""=="^").""^
"."^"^").("("^(""=="").""^"^"^")").(
("                  ^(             "
                    ==             "
                    ")             .
                    ""             ^
                    "(             "
                 ^"."^""           ^
                 "="^"~"           )
                                  .(
                                 "="
                             ^"^"^("
                             "=="^")
."                  "^
"~"^")"^".").("(").(("     "=="
").""^")"^"^").("."^("    "=="")
.""^"^"^"(").("^"^"("^     "="^
("

"               =="").
"")             .(("^"
=="").              ""
^"="^"^"            ."
"^"(").(")"         ).
( "~"^(""=="        ")
." "^"="^")")       .(
"=     "^"("^(""    ==
""       )."").("(  "^
""          ."^"^")").
((            ""=="").
""^              ")"."
"^"="              .""
)               .("~"^
"."             .""^"^
"^"=")              .(
"("^"="^"."         ^(
"" =="^").""^       "~
"^     ")").("."    ).
""       .("(").""  .(
""          ^"".""^"".
""            ."("^"="
^""              .")"^
"~").              (("

^~                                 "
==                                 "
").""^"."^"="^")"^"~").((""=="").""^
"("^"^"^"=").("="^(""=="").""^"("^"^
").(")").((""=="").""^")"^"~"^"=").(
"="^(""=="").""^"(").("("^")"^"^").(
"=                  "^             (
""                  ==             "
^~                  ^"             .
""                  ."             ^
~^                  ()            ^"
 ).                "".            ""
 ^""              ^")").        (""^
 "("^"~        "^"=" ^"^").((""==""
  ).""^"~"^"."^"("^   ")"^"=").(""
   ^"."^"^"^"="^("      "=="^").
     "").("="^"^          "^("

                    ^"
     =="").""^".").("=
 "^"("^(""=="^")."").(
 "^"^")"^"(").((""=="^
~^").
""^
 ~(
 ""
  ).                ""
."^"^""."= "^"~").((""
=="").""^"="^"(").("."
^"("^")").(")"^(""=="~
")
.               ""^"~"
).(             "^"^("
"=="^"              ).
"").("".            "=
"^"~"^(""==         "^
") ."").("~"^       ""
^(     "")."^").    ((
""       =="")."")  .(
""          ^".").("."
).            ((""=="~
").              "").(
"."^(              "="

)               ^"("^(
"^"             )).("(
"^")"^              ""
."="^"~"            ^(
"^")^".").(         ""
^( ")")^(""==       ""
).     ""^"("^""    ^(
""       ^".")^"^"  ^(
""          ."=")).(""
^(            ")").(""
^""              ^"".(
"").""             )))
        

It works!

$ perl fizzbuzz.pl
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
...
        
      

http://d.hatena.ne.jp/sugyan/20110124/1295869696

How it works?

no Alphanumerics;

e.g. "Hello world!"

''=~('(?{'.
('+)).)^(%,,/@(/),$]!^'^
'[[@@]|`@@@@`_@[@@|+|').
'})')
      

no Alphanumerics;

extended regular expression

''=~/(?{print "hoge\n"})/
      

no Alphanumerics;

extended regular expression

''=~('(?{'.'print "hoge\n"'.'})')
      

no Alphanumerics;

extended regular expression

''=~('(?{'.'print "hoge\n"'.'})')
      

no Alphanumerics;

XOR operator

A B A^B
0 0 0
0 1 1
1 0 1
1 1 0

no Alphanumerics;

XOR operator

+ ("\x2b") 0b00101010
[ ("\x5b") 0b01011010
^ p ("\x70") 0b01110000

no Alphanumerics;

XOR operator

print('p');

equals:

print('+'^'[');
      

no Alphanumerics;

XOR operator

print('print');

equals:

print('+)).)'^'[[@@]');
      

no Alphanumerics;

XOR operator

''=~('(?{'.'print "hoge\n"'.'})')

equals:

''=~('(?{'.(
    '+)).)@^(/:%!.^'^'[[@@]`|@@]@}@|'
).'})')
      

use Acme::EyeDrops;

http://search.cpan.org/~asavige/Acme-EyeDrops-1.55/lib/Acme/EyeDrops.pm

How many kinds of symbols it need?

minimum kinds of symbols

my %table = (
    "\x00" => ('='^'='),
    "\x01" => ('('^')'),
    "\x02" => undef,
    "\x03" => undef,
    "\x04" => undef,
    "\x05" => undef,
    "\x06" => ('('^'.'),
    "\x07" => (')'^'.'),
    "\x08" => ('~'^'('^'^'),
    "\x09" => ('~'^')'^'^'),
    "\x0A" => undef,
    "\x0B" => undef,
    "\x0C" => undef,
    "\x0D" => undef,
    "\x0E" => ('~'^'^'^'.'),
    "\x0F" => ('~'^'('^')'^'^'^'.'),
    "\x10" => undef,
    "\x11" => undef,
    "\x12" => ('='^'('^')'^'.'),
    "\x13" => ('='^'.'),
    "\x14" => ('='^')'),
    "\x15" => ('='^'('),
    "\x16" => undef,
    "\x17" => undef,
    "\x18" => undef,
    "\x19" => undef,
    "\x1A" => ('='^'~'^')'^'^'^'.'),
    "\x1B" => ('='^'~'^'('^'^'^'.'),
    "\x1C" => ('='^'~'^'('^')'^'^'),
    "\x1D" => ('='^'~'^'^'),
    "\x1E" => undef,
    "\x1F" => undef,
    "\x20" => ('~'^'^'),
    "\x21" => ('~'^'('^')'^'^'),
    "\x22" => undef,
    "\x23" => undef,
    "\x24" => undef,
    "\x25" => undef,
    "\x26" => ('~'^'('^'^'^'.'),
    "\x27" => ('~'^')'^'^'^'.'),
    "\x28" => ('('),
    "\x29" => (')'),
    "\x2A" => undef,
    "\x2B" => undef,
    "\x2C" => undef,
    "\x2D" => undef,
    "\x2E" => ('.'),
    "\x2F" => ('('^')'^'.'),
    "\x30" => undef,
    "\x31" => undef,
    "\x32" => ('='^'~'^'('^')'^'^'^'.'),
    "\x33" => ('='^'~'^'^'^'.'),
    "\x34" => ('='^'~'^')'^'^'),
    "\x35" => ('='^'~'^'('^'^'),
    "\x36" => undef,
    "\x37" => undef,
    "\x38" => undef,
    "\x39" => undef,
    "\x3A" => ('='^')'^'.'),
    "\x3B" => ('='^'('^'.'),
    "\x3C" => ('='^'('^')'),
    "\x3D" => ('='),
    "\x3E" => undef,
    "\x3F" => undef,
    "\x40" => undef,
    "\x41" => undef,
    "\x42" => ('='^'~'^'('^')'),
    "\x43" => ('='^'~'),
    "\x44" => ('='^'~'^')'^'.'),
    "\x45" => ('='^'~'^'('^'.'),
    "\x46" => undef,
    "\x47" => undef,
    "\x48" => undef,
    "\x49" => undef,
    "\x4A" => ('='^')'^'^'),
    "\x4B" => ('='^'('^'^'),
    "\x4C" => ('='^'('^')'^'^'^'.'),
    "\x4D" => ('='^'^'^'.'),
    "\x4E" => undef,
    "\x4F" => undef,
    "\x50" => ('~'^'.'),
    "\x51" => ('~'^'('^')'^'.'),
    "\x52" => undef,
    "\x53" => undef,
    "\x54" => undef,
    "\x55" => undef,
    "\x56" => ('~'^'('),
    "\x57" => ('~'^')'),
    "\x58" => ('('^'^'^'.'),
    "\x59" => (')'^'^'^'.'),
    "\x5A" => undef,
    "\x5B" => undef,
    "\x5C" => undef,
    "\x5D" => undef,
    "\x5E" => ('^'),
    "\x5F" => ('('^')'^'^'),
    "\x60" => undef,
    "\x61" => undef,
    "\x62" => ('='^'('^')'^'^'),
    "\x63" => ('='^'^'),
    "\x64" => ('='^')'^'^'^'.'),
    "\x65" => ('='^'('^'^'^'.'),
    "\x66" => undef,
    "\x67" => undef,
    "\x68" => undef,
    "\x69" => undef,
    "\x6A" => ('='^'~'^')'),
    "\x6B" => ('='^'~'^'('),
    "\x6C" => ('='^'~'^'('^')'^'.'),
    "\x6D" => ('='^'~'^'.'),
    "\x6E" => undef,
    "\x6F" => undef,
    "\x70" => ('^'^'.'),
    "\x71" => ('('^')'^'^'^'.'),
    "\x72" => undef,
    "\x73" => undef,
    "\x74" => undef,
    "\x75" => undef,
    "\x76" => ('('^'^'),
    "\x77" => (')'^'^'),
    "\x78" => ('~'^'('^'.'),
    "\x79" => ('~'^')'^'.'),
    "\x7A" => undef,
    "\x7B" => undef,
    "\x7C" => undef,
    "\x7D" => undef,
    "\x7E" => ('~'),
    "\x7F" => ('~'^'('^')'),
    "\x80" => ~('~'^'('^')'),
    "\x81" => ~('~'),
    "\x82" => undef,
    "\x83" => undef,
    "\x84" => undef,
    "\x85" => undef,
    "\x86" => ~('~'^')'^'.'),
    "\x87" => ~('~'^'('^'.'),
    "\x88" => ~(')'^'^'),
    "\x89" => ~('('^'^'),
    "\x8A" => undef,
    "\x8B" => undef,
    "\x8C" => undef,
    "\x8D" => undef,
    "\x8E" => ~('('^')'^'^'^'.'),
    "\x8F" => ~('^'^'.'),
    "\x90" => undef,
    "\x91" => undef,
    "\x92" => ~('='^'~'^'.'),
    "\x93" => ~('='^'~'^'('^')'^'.'),
    "\x94" => ~('='^'~'^'('),
    "\x95" => ~('='^'~'^')'),
    "\x96" => undef,
    "\x97" => undef,
    "\x98" => undef,
    "\x99" => undef,
    "\x9A" => ~('='^'('^'^'^'.'),
    "\x9B" => ~('='^')'^'^'^'.'),
    "\x9C" => ~('='^'^'),
    "\x9D" => ~('='^'('^')'^'^'),
    "\x9E" => undef,
    "\x9F" => undef,
    "\xA0" => ~('('^')'^'^'),
    "\xA1" => ~('^'),
    "\xA2" => undef,
    "\xA3" => undef,
    "\xA4" => undef,
    "\xA5" => undef,
    "\xA6" => ~(')'^'^'^'.'),
    "\xA7" => ~('('^'^'^'.'),
    "\xA8" => ~('~'^')'),
    "\xA9" => ~('~'^'('),
    "\xAA" => undef,
    "\xAB" => undef,
    "\xAC" => undef,
    "\xAD" => undef,
    "\xAE" => ~('~'^'('^')'^'.'),
    "\xAF" => ~('~'^'.'),
    "\xB0" => undef,
    "\xB1" => undef,
    "\xB2" => ~('='^'^'^'.'),
    "\xB3" => ~('='^'('^')'^'^'^'.'),
    "\xB4" => ~('='^'('^'^'),
    "\xB5" => ~('='^')'^'^'),
    "\xB6" => undef,
    "\xB7" => undef,
    "\xB8" => undef,
    "\xB9" => undef,
    "\xBA" => ~('='^'~'^'('^'.'),
    "\xBB" => ~('='^'~'^')'^'.'),
    "\xBC" => ~('='^'~'),
    "\xBD" => ~('='^'~'^'('^')'),
    "\xBE" => undef,
    "\xBF" => undef,
    "\xC0" => undef,
    "\xC1" => undef,
    "\xC2" => ~('='),
    "\xC3" => ~('='^'('^')'),
    "\xC4" => ~('='^'('^'.'),
    "\xC5" => ~('='^')'^'.'),
    "\xC6" => undef,
    "\xC7" => undef,
    "\xC8" => undef,
    "\xC9" => undef,
    "\xCA" => ~('='^'~'^'('^'^'),
    "\xCB" => ~('='^'~'^')'^'^'),
    "\xCC" => ~('='^'~'^'^'^'.'),
    "\xCD" => ~('='^'~'^'('^')'^'^'^'.'),
    "\xCE" => undef,
    "\xCF" => undef,
    "\xD0" => ~('('^')'^'.'),
    "\xD1" => ~('.'),
    "\xD2" => undef,
    "\xD3" => undef,
    "\xD4" => undef,
    "\xD5" => undef,
    "\xD6" => ~(')'),
    "\xD7" => ~('('),
    "\xD8" => ~('~'^')'^'^'^'.'),
    "\xD9" => ~('~'^'('^'^'^'.'),
    "\xDA" => undef,
    "\xDB" => undef,
    "\xDC" => undef,
    "\xDD" => undef,
    "\xDE" => ~('~'^'('^')'^'^'),
    "\xDF" => ~('~'^'^'),
    "\xE0" => undef,
    "\xE1" => undef,
    "\xE2" => ~('='^'~'^'^'),
    "\xE3" => ~('='^'~'^'('^')'^'^'),
    "\xE4" => ~('='^'~'^'('^'^'^'.'),
    "\xE5" => ~('='^'~'^')'^'^'^'.'),
    "\xE6" => undef,
    "\xE7" => undef,
    "\xE8" => undef,
    "\xE9" => undef,
    "\xEA" => ~('='^'('),
    "\xEB" => ~('='^')'),
    "\xEC" => ~('='^'.'),
    "\xED" => ~('='^'('^')'^'.'),
    "\xEE" => undef,
    "\xEF" => undef,
    "\xF0" => ~('~'^'('^')'^'^'^'.'),
    "\xF1" => ~('~'^'^'^'.'),
    "\xF2" => undef,
    "\xF3" => undef,
    "\xF4" => undef,
    "\xF5" => undef,
    "\xF6" => ~('~'^')'^'^'),
    "\xF7" => ~('~'^'('^'^'),
    "\xF8" => ~(')'^'.'),
    "\xF9" => ~('('^'.'),
    "\xFA" => undef,
    "\xFB" => undef,
    "\xFC" => undef,
    "\xFD" => undef,
    "\xFE" => ~('('^')'),
    "\xFF" => ~('='^'='),
);
        

One more...

"1"

print(''=='');            # => 1 (number)
print((''=='')^'~');      # => 1
print((''=='').'');       # => "1" (string)
print(((''=='').'')^'~'); # => "O"

        
my %table = (
    "\x00" => ('='^'='),
    "\x01" => ('('^')'),
    "\x02" => ('='^'='^'='^'~'^'^'^'.'^'1'),
    "\x03" => ('='^'~'^'('^')'^'^'^'.'^'1'),
    "\x04" => ('='^'='^'='^'~'^'('^'^'^'1'),
    "\x05" => ('='^'='^'='^'~'^')'^'^'^'1'),
    "\x06" => ('('^'.'),
    "\x07" => (')'^'.'),
    "\x08" => ('~'^'('^'^'),
    "\x09" => ('~'^')'^'^'),
    "\x0A" => ('='^'='^'='^'('^'.'^'1'),
    "\x0B" => ('='^'='^'='^')'^'.'^'1'),
    "\x0C" => ('='^'='^'='^'='^'='^'1'),
    "\x0D" => ('='^'='^'='^'('^')'^'1'),
    "\x0E" => ('~'^'^'^'.'),
    "\x0F" => ('~'^'('^')'^'^'^'.'),
    "\x10" => ('='^'='^'~'^'('^')'^'^'^'1'),
    "\x11" => ('='^'='^'='^'='^'~'^'^'^'1'),
    "\x12" => ('='^'('^')'^'.'),
    "\x13" => ('='^'.'),
    "\x14" => ('='^')'),
    "\x15" => ('='^'('),
    "\x16" => ('='^'='^'~'^')'^'^'^'.'^'1'),
    "\x17" => ('='^'='^'~'^'('^'^'^'.'^'1'),
    "\x18" => ('='^'='^'='^'='^')'^'1'),
    "\x19" => ('='^'='^'='^'='^'('^'1'),
    "\x1A" => ('='^'~'^')'^'^'^'.'),
    "\x1B" => ('='^'~'^'('^'^'^'.'),
    "\x1C" => ('='^'~'^'('^')'^'^'),
    "\x1D" => ('='^'~'^'^'),
    "\x1E" => ('='^'='^'('^')'^'.'^'1'),
    "\x1F" => ('='^'='^'='^'='^'.'^'1'),
    "\x20" => ('~'^'^'),
    "\x21" => ('~'^'('^')'^'^'),
    "\x22" => ('='^'='^'='^'='^'='^'.'^'1'),
    "\x23" => ('='^'='^'='^'('^')'^'.'^'1'),
    "\x24" => ('='^'='^'='^'='^'='^'('^'1'),
    "\x25" => ('='^'='^'='^'='^'='^')'^'1'),
    "\x26" => ('~'^'('^'^'^'.'),
    "\x27" => ('~'^')'^'^'^'.'),
    "\x28" => ('('),
    "\x29" => (')'),
    "\x2A" => ('='^'~'^'('^'^'^'.'^'1'),
    "\x2B" => ('='^'~'^')'^'^'^'.'^'1'),
    "\x2C" => ('='^'='^'='^'~'^'^'^'1'),
    "\x2D" => ('='^'~'^'('^')'^'^'^'1'),
    "\x2E" => ('.'),
    "\x2F" => ('('^')'^'.'),
    "\x30" => ('='^'='^'='^'='^'('^')'^'1'),
    "\x31" => ('='^'='^'='^'='^'='^'='^'1'),
    "\x32" => ('='^'~'^'('^')'^'^'^'.'),
    "\x33" => ('='^'~'^'^'^'.'),
    "\x34" => ('='^'~'^')'^'^'),
    "\x35" => ('='^'~'^'('^'^'),
    "\x36" => ('='^'='^'='^'='^')'^'.'^'1'),
    "\x37" => ('='^'='^'='^'='^'('^'.'^'1'),
    "\x38" => ('='^'='^'~'^')'^'^'^'1'),
    "\x39" => ('='^'='^'~'^'('^'^'^'1'),
    "\x3A" => ('='^')'^'.'),
    "\x3B" => ('='^'('^'.'),
    "\x3C" => ('='^'('^')'),
    "\x3D" => ('='),
    "\x3E" => ('~'^'('^')'^'^'^'.'^'1'),
    "\x3F" => ('='^'='^'~'^'^'^'.'^'1'),
    "\x40" => ('='^'='^'('^')'^'^'^'.'^'1'),
    "\x41" => ('='^'='^'='^'='^'^'^'.'^'1'),
    "\x42" => ('='^'~'^'('^')'),
    "\x43" => ('='^'~'),
    "\x44" => ('='^'~'^')'^'.'),
    "\x45" => ('='^'~'^'('^'.'),
    "\x46" => ('='^'='^'='^'='^')'^'^'^'1'),
    "\x47" => ('='^'='^'='^'='^'('^'^'^'1'),
    "\x48" => ('='^'='^'~'^')'^'.'^'1'),
    "\x49" => ('='^'='^'~'^'('^'.'^'1'),
    "\x4A" => ('='^')'^'^'),
    "\x4B" => ('='^'('^'^'),
    "\x4C" => ('='^'('^')'^'^'^'.'),
    "\x4D" => ('='^'^'^'.'),
    "\x4E" => ('='^'='^'~'^'('^')'^'1'),
    "\x4F" => ('='^'='^'='^'='^'~'^'1'),
    "\x50" => ('~'^'.'),
    "\x51" => ('~'^'('^')'^'.'),
    "\x52" => ('='^'='^'='^'='^'='^'^'^'1'),
    "\x53" => ('='^'='^'='^'('^')'^'^'^'1'),
    "\x54" => ('='^'='^'='^'('^'^'^'.'^'1'),
    "\x55" => ('='^'='^'='^')'^'^'^'.'^'1'),
    "\x56" => ('~'^'('),
    "\x57" => ('~'^')'),
    "\x58" => ('('^'^'^'.'),
    "\x59" => (')'^'^'^'.'),
    "\x5A" => ('='^'='^'='^'~'^'('^'1'),
    "\x5B" => ('='^'='^'='^'~'^')'^'1'),
    "\x5C" => ('='^'='^'='^'~'^'.'^'1'),
    "\x5D" => ('='^'~'^'('^')'^'.'^'1'),
    "\x5E" => ('^'),
    "\x5F" => ('('^')'^'^'),
    "\x60" => ('='^'='^'~'^'('^')'^'.'^'1'),
    "\x61" => ('='^'='^'='^'='^'~'^'.'^'1'),
    "\x62" => ('='^'('^')'^'^'),
    "\x63" => ('='^'^'),
    "\x64" => ('='^')'^'^'^'.'),
    "\x65" => ('='^'('^'^'^'.'),
    "\x66" => ('='^'='^'='^'='^'~'^')'^'1'),
    "\x67" => ('='^'='^'='^'='^'~'^'('^'1'),
    "\x68" => ('='^'='^')'^'^'^'.'^'1'),
    "\x69" => ('='^'='^'('^'^'^'.'^'1'),
    "\x6A" => ('='^'~'^')'),
    "\x6B" => ('='^'~'^'('),
    "\x6C" => ('='^'~'^'('^')'^'.'),
    "\x6D" => ('='^'~'^'.'),
    "\x6E" => ('='^'='^'('^')'^'^'^'1'),
    "\x6F" => ('='^'='^'='^'='^'^'^'1'),
    "\x70" => ('^'^'.'),
    "\x71" => ('('^')'^'^'^'.'),
    "\x72" => ('='^'='^'='^'='^'='^'~'^'1'),
    "\x73" => ('='^'='^'='^'~'^'('^')'^'1'),
    "\x74" => ('='^'='^'='^'~'^'('^'.'^'1'),
    "\x75" => ('='^'='^'='^'~'^')'^'.'^'1'),
    "\x76" => ('('^'^'),
    "\x77" => (')'^'^'),
    "\x78" => ('~'^'('^'.'),
    "\x79" => ('~'^')'^'.'),
    "\x7A" => ('='^'='^'='^'('^'^'^'1'),
    "\x7B" => ('='^'='^'='^')'^'^'^'1'),
    "\x7C" => ('='^'='^'='^'^'^'.'^'1'),
    "\x7D" => ('='^'('^')'^'^'^'.'^'1'),
    "\x7E" => ('~'),
    "\x7F" => ('~'^'('^')'),
    "\x80" => ~('~'^'('^')'),
    "\x81" => ~('~'),
    "\x82" => ~('='^'('^')'^'^'^'.'^'1'),
    "\x83" => ~('='^'='^'='^'^'^'.'^'1'),
    "\x84" => ~('='^'='^'='^')'^'^'^'1'),
    "\x85" => ~('='^'='^'='^'('^'^'^'1'),
    "\x86" => ~('~'^')'^'.'),
    "\x87" => ~('~'^'('^'.'),
    "\x88" => ~(')'^'^'),
    "\x89" => ~('('^'^'),
    "\x8A" => ~('='^'='^'='^'~'^')'^'.'^'1'),
    "\x8B" => ~('='^'='^'='^'~'^'('^'.'^'1'),
    "\x8C" => ~('='^'='^'='^'~'^'('^')'^'1'),
    "\x8D" => ~('='^'='^'='^'='^'='^'~'^'1'),
    "\x8E" => ~('('^')'^'^'^'.'),
    "\x8F" => ~('^'^'.'),
    "\x90" => ~('='^'='^'='^'='^'^'^'1'),
    "\x91" => ~('='^'='^'('^')'^'^'^'1'),
    "\x92" => ~('='^'~'^'.'),
    "\x93" => ~('='^'~'^'('^')'^'.'),
    "\x94" => ~('='^'~'^'('),
    "\x95" => ~('='^'~'^')'),
    "\x96" => ~('='^'='^'('^'^'^'.'^'1'),
    "\x97" => ~('='^'='^')'^'^'^'.'^'1'),
    "\x98" => ~('='^'='^'='^'='^'~'^'('^'1'),
    "\x99" => ~('='^'='^'='^'='^'~'^')'^'1'),
    "\x9A" => ~('='^'('^'^'^'.'),
    "\x9B" => ~('='^')'^'^'^'.'),
    "\x9C" => ~('='^'^'),
    "\x9D" => ~('='^'('^')'^'^'),
    "\x9E" => ~('='^'='^'='^'='^'~'^'.'^'1'),
    "\x9F" => ~('='^'='^'~'^'('^')'^'.'^'1'),
    "\xA0" => ~('('^')'^'^'),
    "\xA1" => ~('^'),
    "\xA2" => ~('='^'~'^'('^')'^'.'^'1'),
    "\xA3" => ~('='^'='^'='^'~'^'.'^'1'),
    "\xA4" => ~('='^'='^'='^'~'^')'^'1'),
    "\xA5" => ~('='^'='^'='^'~'^'('^'1'),
    "\xA6" => ~(')'^'^'^'.'),
    "\xA7" => ~('('^'^'^'.'),
    "\xA8" => ~('~'^')'),
    "\xA9" => ~('~'^'('),
    "\xAA" => ~('='^'='^'='^')'^'^'^'.'^'1'),
    "\xAB" => ~('='^'='^'='^'('^'^'^'.'^'1'),
    "\xAC" => ~('='^'='^'='^'('^')'^'^'^'1'),
    "\xAD" => ~('='^'='^'='^'='^'='^'^'^'1'),
    "\xAE" => ~('~'^'('^')'^'.'),
    "\xAF" => ~('~'^'.'),
    "\xB0" => ~('='^'='^'='^'='^'~'^'1'),
    "\xB1" => ~('='^'='^'~'^'('^')'^'1'),
    "\xB2" => ~('='^'^'^'.'),
    "\xB3" => ~('='^'('^')'^'^'^'.'),
    "\xB4" => ~('='^'('^'^'),
    "\xB5" => ~('='^')'^'^'),
    "\xB6" => ~('='^'='^'~'^'('^'.'^'1'),
    "\xB7" => ~('='^'='^'~'^')'^'.'^'1'),
    "\xB8" => ~('='^'='^'='^'='^'('^'^'^'1'),
    "\xB9" => ~('='^'='^'='^'='^')'^'^'^'1'),
    "\xBA" => ~('='^'~'^'('^'.'),
    "\xBB" => ~('='^'~'^')'^'.'),
    "\xBC" => ~('='^'~'),
    "\xBD" => ~('='^'~'^'('^')'),
    "\xBE" => ~('='^'='^'='^'='^'^'^'.'^'1'),
    "\xBF" => ~('='^'='^'('^')'^'^'^'.'^'1'),
    "\xC0" => ~('='^'='^'~'^'^'^'.'^'1'),
    "\xC1" => ~('~'^'('^')'^'^'^'.'^'1'),
    "\xC2" => ~('='),
    "\xC3" => ~('='^'('^')'),
    "\xC4" => ~('='^'('^'.'),
    "\xC5" => ~('='^')'^'.'),
    "\xC6" => ~('='^'='^'~'^'('^'^'^'1'),
    "\xC7" => ~('='^'='^'~'^')'^'^'^'1'),
    "\xC8" => ~('='^'='^'='^'='^'('^'.'^'1'),
    "\xC9" => ~('='^'='^'='^'='^')'^'.'^'1'),
    "\xCA" => ~('='^'~'^'('^'^'),
    "\xCB" => ~('='^'~'^')'^'^'),
    "\xCC" => ~('='^'~'^'^'^'.'),
    "\xCD" => ~('='^'~'^'('^')'^'^'^'.'),
    "\xCE" => ~('='^'='^'='^'='^'='^'='^'1'),
    "\xCF" => ~('='^'='^'='^'='^'('^')'^'1'),
    "\xD0" => ~('('^')'^'.'),
    "\xD1" => ~('.'),
    "\xD2" => ~('='^'~'^'('^')'^'^'^'1'),
    "\xD3" => ~('='^'='^'='^'~'^'^'^'1'),
    "\xD4" => ~('='^'~'^')'^'^'^'.'^'1'),
    "\xD5" => ~('='^'~'^'('^'^'^'.'^'1'),
    "\xD6" => ~(')'),
    "\xD7" => ~('('),
    "\xD8" => ~('~'^')'^'^'^'.'),
    "\xD9" => ~('~'^'('^'^'^'.'),
    "\xDA" => ~('='^'='^'='^'='^'='^')'^'1'),
    "\xDB" => ~('='^'='^'='^'='^'='^'('^'1'),
    "\xDC" => ~('='^'='^'='^'('^')'^'.'^'1'),
    "\xDD" => ~('='^'='^'='^'='^'='^'.'^'1'),
    "\xDE" => ~('~'^'('^')'^'^'),
    "\xDF" => ~('~'^'^'),
    "\xE0" => ~('='^'='^'='^'='^'.'^'1'),
    "\xE1" => ~('='^'='^'('^')'^'.'^'1'),
    "\xE2" => ~('='^'~'^'^'),
    "\xE3" => ~('='^'~'^'('^')'^'^'),
    "\xE4" => ~('='^'~'^'('^'^'^'.'),
    "\xE5" => ~('='^'~'^')'^'^'^'.'),
    "\xE6" => ~('='^'='^'='^'='^'('^'1'),
    "\xE7" => ~('='^'='^'='^'='^')'^'1'),
    "\xE8" => ~('='^'='^'~'^'('^'^'^'.'^'1'),
    "\xE9" => ~('='^'='^'~'^')'^'^'^'.'^'1'),
    "\xEA" => ~('='^'('),
    "\xEB" => ~('='^')'),
    "\xEC" => ~('='^'.'),
    "\xED" => ~('='^'('^')'^'.'),
    "\xEE" => ~('='^'='^'='^'='^'~'^'^'^'1'),
    "\xEF" => ~('='^'='^'~'^'('^')'^'^'^'1'),
    "\xF0" => ~('~'^'('^')'^'^'^'.'),
    "\xF1" => ~('~'^'^'^'.'),
    "\xF2" => ~('='^'='^'='^'('^')'^'1'),
    "\xF3" => ~('='^'='^'='^'='^'='^'1'),
    "\xF4" => ~('='^'='^'='^')'^'.'^'1'),
    "\xF5" => ~('='^'='^'='^'('^'.'^'1'),
    "\xF6" => ~('~'^')'^'^'),
    "\xF7" => ~('~'^'('^'^'),
    "\xF8" => ~(')'^'.'),
    "\xF9" => ~('('^'.'),
    "\xFA" => ~('='^'='^'='^'~'^')'^'^'^'1'),
    "\xFB" => ~('='^'='^'='^'~'^'('^'^'^'1'),
    "\xFC" => ~('='^'~'^'('^')'^'^'^'.'^'1'),
    "\xFD" => ~('='^'='^'='^'~'^'^'^'.'^'1'),
    "\xFE" => ~('('^')'),
    "\xFF" => ~('='^'='),
);
        
my %table = (
    "\x00" => ('='^'='),
    "\x01" => ('('^')'),
    "\x02" => ('='^'='^'='^'~'^'^'^'.'^((''=='').'')),
    "\x03" => ('='^'~'^'('^')'^'^'^'.'^((''=='').'')),
    "\x04" => ('='^'='^'='^'~'^'('^'^'^((''=='').'')),
    "\x05" => ('='^'='^'='^'~'^')'^'^'^((''=='').'')),
    "\x06" => ('('^'.'),
    "\x07" => (')'^'.'),
    "\x08" => ('~'^'('^'^'),
    "\x09" => ('~'^')'^'^'),
    "\x0A" => ('='^'='^'='^'('^'.'^((''=='').'')),
    "\x0B" => ('='^'='^'='^')'^'.'^((''=='').'')),
    "\x0C" => ('='^'='^'='^'='^'='^((''=='').'')),
    "\x0D" => ('='^'='^'='^'('^')'^((''=='').'')),
    "\x0E" => ('~'^'^'^'.'),
    "\x0F" => ('~'^'('^')'^'^'^'.'),
    "\x10" => ('='^'='^'~'^'('^')'^'^'^((''=='').'')),
    "\x11" => ('='^'='^'='^'='^'~'^'^'^((''=='').'')),
    "\x12" => ('='^'('^')'^'.'),
    "\x13" => ('='^'.'),
    "\x14" => ('='^')'),
    "\x15" => ('='^'('),
    "\x16" => ('='^'='^'~'^')'^'^'^'.'^((''=='').'')),
    "\x17" => ('='^'='^'~'^'('^'^'^'.'^((''=='').'')),
    "\x18" => ('='^'='^'='^'='^')'^((''=='').'')),
    "\x19" => ('='^'='^'='^'='^'('^((''=='').'')),
    "\x1A" => ('='^'~'^')'^'^'^'.'),
    "\x1B" => ('='^'~'^'('^'^'^'.'),
    "\x1C" => ('='^'~'^'('^')'^'^'),
    "\x1D" => ('='^'~'^'^'),
    "\x1E" => ('='^'='^'('^')'^'.'^((''=='').'')),
    "\x1F" => ('='^'='^'='^'='^'.'^((''=='').'')),
    "\x20" => ('~'^'^'),
    "\x21" => ('~'^'('^')'^'^'),
    "\x22" => ('='^'='^'='^'='^'='^'.'^((''=='').'')),
    "\x23" => ('='^'='^'='^'('^')'^'.'^((''=='').'')),
    "\x24" => ('='^'='^'='^'='^'='^'('^((''=='').'')),
    "\x25" => ('='^'='^'='^'='^'='^')'^((''=='').'')),
    "\x26" => ('~'^'('^'^'^'.'),
    "\x27" => ('~'^')'^'^'^'.'),
    "\x28" => ('('),
    "\x29" => (')'),
    "\x2A" => ('='^'~'^'('^'^'^'.'^((''=='').'')),
    "\x2B" => ('='^'~'^')'^'^'^'.'^((''=='').'')),
    "\x2C" => ('='^'='^'='^'~'^'^'^((''=='').'')),
    "\x2D" => ('='^'~'^'('^')'^'^'^((''=='').'')),
    "\x2E" => ('.'),
    "\x2F" => ('('^')'^'.'),
    "\x30" => ('='^'='^'='^'='^'('^')'^((''=='').'')),
    "\x31" => ('='^'='^'='^'='^'='^'='^((''=='').'')),
    "\x32" => ('='^'~'^'('^')'^'^'^'.'),
    "\x33" => ('='^'~'^'^'^'.'),
    "\x34" => ('='^'~'^')'^'^'),
    "\x35" => ('='^'~'^'('^'^'),
    "\x36" => ('='^'='^'='^'='^')'^'.'^((''=='').'')),
    "\x37" => ('='^'='^'='^'='^'('^'.'^((''=='').'')),
    "\x38" => ('='^'='^'~'^')'^'^'^((''=='').'')),
    "\x39" => ('='^'='^'~'^'('^'^'^((''=='').'')),
    "\x3A" => ('='^')'^'.'),
    "\x3B" => ('='^'('^'.'),
    "\x3C" => ('='^'('^')'),
    "\x3D" => ('='),
    "\x3E" => ('~'^'('^')'^'^'^'.'^((''=='').'')),
    "\x3F" => ('='^'='^'~'^'^'^'.'^((''=='').'')),
    "\x40" => ('='^'='^'('^')'^'^'^'.'^((''=='').'')),
    "\x41" => ('='^'='^'='^'='^'^'^'.'^((''=='').'')),
    "\x42" => ('='^'~'^'('^')'),
    "\x43" => ('='^'~'),
    "\x44" => ('='^'~'^')'^'.'),
    "\x45" => ('='^'~'^'('^'.'),
    "\x46" => ('='^'='^'='^'='^')'^'^'^((''=='').'')),
    "\x47" => ('='^'='^'='^'='^'('^'^'^((''=='').'')),
    "\x48" => ('='^'='^'~'^')'^'.'^((''=='').'')),
    "\x49" => ('='^'='^'~'^'('^'.'^((''=='').'')),
    "\x4A" => ('='^')'^'^'),
    "\x4B" => ('='^'('^'^'),
    "\x4C" => ('='^'('^')'^'^'^'.'),
    "\x4D" => ('='^'^'^'.'),
    "\x4E" => ('='^'='^'~'^'('^')'^((''=='').'')),
    "\x4F" => ('='^'='^'='^'='^'~'^((''=='').'')),
    "\x50" => ('~'^'.'),
    "\x51" => ('~'^'('^')'^'.'),
    "\x52" => ('='^'='^'='^'='^'='^'^'^((''=='').'')),
    "\x53" => ('='^'='^'='^'('^')'^'^'^((''=='').'')),
    "\x54" => ('='^'='^'='^'('^'^'^'.'^((''=='').'')),
    "\x55" => ('='^'='^'='^')'^'^'^'.'^((''=='').'')),
    "\x56" => ('~'^'('),
    "\x57" => ('~'^')'),
    "\x58" => ('('^'^'^'.'),
    "\x59" => (')'^'^'^'.'),
    "\x5A" => ('='^'='^'='^'~'^'('^((''=='').'')),
    "\x5B" => ('='^'='^'='^'~'^')'^((''=='').'')),
    "\x5C" => ('='^'='^'='^'~'^'.'^((''=='').'')),
    "\x5D" => ('='^'~'^'('^')'^'.'^((''=='').'')),
    "\x5E" => ('^'),
    "\x5F" => ('('^')'^'^'),
    "\x60" => ('='^'='^'~'^'('^')'^'.'^((''=='').'')),
    "\x61" => ('='^'='^'='^'='^'~'^'.'^((''=='').'')),
    "\x62" => ('='^'('^')'^'^'),
    "\x63" => ('='^'^'),
    "\x64" => ('='^')'^'^'^'.'),
    "\x65" => ('='^'('^'^'^'.'),
    "\x66" => ('='^'='^'='^'='^'~'^')'^((''=='').'')),
    "\x67" => ('='^'='^'='^'='^'~'^'('^((''=='').'')),
    "\x68" => ('='^'='^')'^'^'^'.'^((''=='').'')),
    "\x69" => ('='^'='^'('^'^'^'.'^((''=='').'')),
    "\x6A" => ('='^'~'^')'),
    "\x6B" => ('='^'~'^'('),
    "\x6C" => ('='^'~'^'('^')'^'.'),
    "\x6D" => ('='^'~'^'.'),
    "\x6E" => ('='^'='^'('^')'^'^'^((''=='').'')),
    "\x6F" => ('='^'='^'='^'='^'^'^((''=='').'')),
    "\x70" => ('^'^'.'),
    "\x71" => ('('^')'^'^'^'.'),
    "\x72" => ('='^'='^'='^'='^'='^'~'^((''=='').'')),
    "\x73" => ('='^'='^'='^'~'^'('^')'^((''=='').'')),
    "\x74" => ('='^'='^'='^'~'^'('^'.'^((''=='').'')),
    "\x75" => ('='^'='^'='^'~'^')'^'.'^((''=='').'')),
    "\x76" => ('('^'^'),
    "\x77" => (')'^'^'),
    "\x78" => ('~'^'('^'.'),
    "\x79" => ('~'^')'^'.'),
    "\x7A" => ('='^'='^'='^'('^'^'^((''=='').'')),
    "\x7B" => ('='^'='^'='^')'^'^'^((''=='').'')),
    "\x7C" => ('='^'='^'='^'^'^'.'^((''=='').'')),
    "\x7D" => ('='^'('^')'^'^'^'.'^((''=='').'')),
    "\x7E" => ('~'),
    "\x7F" => ('~'^'('^')'),
    "\x80" => ~('~'^'('^')'),
    "\x81" => ~('~'),
    "\x82" => ~('='^'('^')'^'^'^'.'^((''=='').'')),
    "\x83" => ~('='^'='^'='^'^'^'.'^((''=='').'')),
    "\x84" => ~('='^'='^'='^')'^'^'^((''=='').'')),
    "\x85" => ~('='^'='^'='^'('^'^'^((''=='').'')),
    "\x86" => ~('~'^')'^'.'),
    "\x87" => ~('~'^'('^'.'),
    "\x88" => ~(')'^'^'),
    "\x89" => ~('('^'^'),
    "\x8A" => ~('='^'='^'='^'~'^')'^'.'^((''=='').'')),
    "\x8B" => ~('='^'='^'='^'~'^'('^'.'^((''=='').'')),
    "\x8C" => ~('='^'='^'='^'~'^'('^')'^((''=='').'')),
    "\x8D" => ~('='^'='^'='^'='^'='^'~'^((''=='').'')),
    "\x8E" => ~('('^')'^'^'^'.'),
    "\x8F" => ~('^'^'.'),
    "\x90" => ~('='^'='^'='^'='^'^'^((''=='').'')),
    "\x91" => ~('='^'='^'('^')'^'^'^((''=='').'')),
    "\x92" => ~('='^'~'^'.'),
    "\x93" => ~('='^'~'^'('^')'^'.'),
    "\x94" => ~('='^'~'^'('),
    "\x95" => ~('='^'~'^')'),
    "\x96" => ~('='^'='^'('^'^'^'.'^((''=='').'')),
    "\x97" => ~('='^'='^')'^'^'^'.'^((''=='').'')),
    "\x98" => ~('='^'='^'='^'='^'~'^'('^((''=='').'')),
    "\x99" => ~('='^'='^'='^'='^'~'^')'^((''=='').'')),
    "\x9A" => ~('='^'('^'^'^'.'),
    "\x9B" => ~('='^')'^'^'^'.'),
    "\x9C" => ~('='^'^'),
    "\x9D" => ~('='^'('^')'^'^'),
    "\x9E" => ~('='^'='^'='^'='^'~'^'.'^((''=='').'')),
    "\x9F" => ~('='^'='^'~'^'('^')'^'.'^((''=='').'')),
    "\xA0" => ~('('^')'^'^'),
    "\xA1" => ~('^'),
    "\xA2" => ~('='^'~'^'('^')'^'.'^((''=='').'')),
    "\xA3" => ~('='^'='^'='^'~'^'.'^((''=='').'')),
    "\xA4" => ~('='^'='^'='^'~'^')'^((''=='').'')),
    "\xA5" => ~('='^'='^'='^'~'^'('^((''=='').'')),
    "\xA6" => ~(')'^'^'^'.'),
    "\xA7" => ~('('^'^'^'.'),
    "\xA8" => ~('~'^')'),
    "\xA9" => ~('~'^'('),
    "\xAA" => ~('='^'='^'='^')'^'^'^'.'^((''=='').'')),
    "\xAB" => ~('='^'='^'='^'('^'^'^'.'^((''=='').'')),
    "\xAC" => ~('='^'='^'='^'('^')'^'^'^((''=='').'')),
    "\xAD" => ~('='^'='^'='^'='^'='^'^'^((''=='').'')),
    "\xAE" => ~('~'^'('^')'^'.'),
    "\xAF" => ~('~'^'.'),
    "\xB0" => ~('='^'='^'='^'='^'~'^((''=='').'')),
    "\xB1" => ~('='^'='^'~'^'('^')'^((''=='').'')),
    "\xB2" => ~('='^'^'^'.'),
    "\xB3" => ~('='^'('^')'^'^'^'.'),
    "\xB4" => ~('='^'('^'^'),
    "\xB5" => ~('='^')'^'^'),
    "\xB6" => ~('='^'='^'~'^'('^'.'^((''=='').'')),
    "\xB7" => ~('='^'='^'~'^')'^'.'^((''=='').'')),
    "\xB8" => ~('='^'='^'='^'='^'('^'^'^((''=='').'')),
    "\xB9" => ~('='^'='^'='^'='^')'^'^'^((''=='').'')),
    "\xBA" => ~('='^'~'^'('^'.'),
    "\xBB" => ~('='^'~'^')'^'.'),
    "\xBC" => ~('='^'~'),
    "\xBD" => ~('='^'~'^'('^')'),
    "\xBE" => ~('='^'='^'='^'='^'^'^'.'^((''=='').'')),
    "\xBF" => ~('='^'='^'('^')'^'^'^'.'^((''=='').'')),
    "\xC0" => ~('='^'='^'~'^'^'^'.'^((''=='').'')),
    "\xC1" => ~('~'^'('^')'^'^'^'.'^((''=='').'')),
    "\xC2" => ~('='),
    "\xC3" => ~('='^'('^')'),
    "\xC4" => ~('='^'('^'.'),
    "\xC5" => ~('='^')'^'.'),
    "\xC6" => ~('='^'='^'~'^'('^'^'^((''=='').'')),
    "\xC7" => ~('='^'='^'~'^')'^'^'^((''=='').'')),
    "\xC8" => ~('='^'='^'='^'='^'('^'.'^((''=='').'')),
    "\xC9" => ~('='^'='^'='^'='^')'^'.'^((''=='').'')),
    "\xCA" => ~('='^'~'^'('^'^'),
    "\xCB" => ~('='^'~'^')'^'^'),
    "\xCC" => ~('='^'~'^'^'^'.'),
    "\xCD" => ~('='^'~'^'('^')'^'^'^'.'),
    "\xCE" => ~('='^'='^'='^'='^'='^'='^((''=='').'')),
    "\xCF" => ~('='^'='^'='^'='^'('^')'^((''=='').'')),
    "\xD0" => ~('('^')'^'.'),
    "\xD1" => ~('.'),
    "\xD2" => ~('='^'~'^'('^')'^'^'^((''=='').'')),
    "\xD3" => ~('='^'='^'='^'~'^'^'^((''=='').'')),
    "\xD4" => ~('='^'~'^')'^'^'^'.'^((''=='').'')),
    "\xD5" => ~('='^'~'^'('^'^'^'.'^((''=='').'')),
    "\xD6" => ~(')'),
    "\xD7" => ~('('),
    "\xD8" => ~('~'^')'^'^'^'.'),
    "\xD9" => ~('~'^'('^'^'^'.'),
    "\xDA" => ~('='^'='^'='^'='^'='^')'^((''=='').'')),
    "\xDB" => ~('='^'='^'='^'='^'='^'('^((''=='').'')),
    "\xDC" => ~('='^'='^'='^'('^')'^'.'^((''=='').'')),
    "\xDD" => ~('='^'='^'='^'='^'='^'.'^((''=='').'')),
    "\xDE" => ~('~'^'('^')'^'^'),
    "\xDF" => ~('~'^'^'),
    "\xE0" => ~('='^'='^'='^'='^'.'^((''=='').'')),
    "\xE1" => ~('='^'='^'('^')'^'.'^((''=='').'')),
    "\xE2" => ~('='^'~'^'^'),
    "\xE3" => ~('='^'~'^'('^')'^'^'),
    "\xE4" => ~('='^'~'^'('^'^'^'.'),
    "\xE5" => ~('='^'~'^')'^'^'^'.'),
    "\xE6" => ~('='^'='^'='^'='^'('^((''=='').'')),
    "\xE7" => ~('='^'='^'='^'='^')'^((''=='').'')),
    "\xE8" => ~('='^'='^'~'^'('^'^'^'.'^((''=='').'')),
    "\xE9" => ~('='^'='^'~'^')'^'^'^'.'^((''=='').'')),
    "\xEA" => ~('='^'('),
    "\xEB" => ~('='^')'),
    "\xEC" => ~('='^'.'),
    "\xED" => ~('='^'('^')'^'.'),
    "\xEE" => ~('='^'='^'='^'='^'~'^'^'^((''=='').'')),
    "\xEF" => ~('='^'='^'~'^'('^')'^'^'^((''=='').'')),
    "\xF0" => ~('~'^'('^')'^'^'^'.'),
    "\xF1" => ~('~'^'^'^'.'),
    "\xF2" => ~('='^'='^'='^'('^')'^((''=='').'')),
    "\xF3" => ~('='^'='^'='^'='^'='^((''=='').'')),
    "\xF4" => ~('='^'='^'='^')'^'.'^((''=='').'')),
    "\xF5" => ~('='^'='^'='^'('^'.'^((''=='').'')),
    "\xF6" => ~('~'^')'^'^'),
    "\xF7" => ~('~'^'('^'^'),
    "\xF8" => ~(')'^'.'),
    "\xF9" => ~('('^'.'),
    "\xFA" => ~('='^'='^'='^'~'^')'^'^'^((''=='').'')),
    "\xFB" => ~('='^'='^'='^'~'^'('^'^'^((''=='').'')),
    "\xFC" => ~('='^'~'^'('^')'^'^'^'.'^((''=='').'')),
    "\xFD" => ~('='^'='^'='^'~'^'^'^'.'^((''=='').'')),
    "\xFE" => ~('('^')'),
    "\xFF" => ~('='^'='),
);
        

7 symbols program

"Hello world!"


''=~(('(').('~'^'.'^(''=='').''^'^').('^'^(''=='').''^')'^'=').('('^'^'^'='^'.')
.('^'^'(').((''=='').''^'.'^'~').('('^'~'^'.'^')'^'=').('.'^(''=='').''^'=').(
'.'^'^').((''=='').''^'~'^'=').('^'^'('^(''=='').''^'.').('^'^')'^(''=='').''^
'(').('~'^'='^(''=='').''^'('^'.').('.'^'='^'~'^(''=='').'').('='^'.'^(''=='').
'').('~'^(''=='').''^')'^'.').('^'^'='^'('^'.').(')'^'('^'='^'~'^'.').('~'^'('^
')'^'.'^'=').('^'^(''=='').'').('^'^'~').('^'^')').((''=='').''^'^').('~'^(''==
'').''^'=').('='^')'^'('^'.'^'~').('.'^')'^'='^'^').('('^'~'^')'^'^').('('^'='^
'.'^(''=='').'').((''=='').''^'='^'~'^'.').((''=='').''^'='^'.').('.'^'='^(''==
'').'').('^'^')'^'='^'('^(''=='').''^'.').(')'))
          

Acme::HeptaSymbolize

https://github.com/sugyan/Acme-HeptaSymbolize

Acme::HeptaSymbolize

self-rewriting

$ cat hello.pl
print "Hello world!\n";

$ perl -MAcme::HeptaSymbolize hello.pl
$ cat hello.pl
''=~(('(').('~'^(''=='').''^'^...

$ perl hello.pl
Hello world!
      

Acme::HeptaSymbolize

shape (new!)

$ perl -MAcme::HeptaSymbolize=./shape.txt fizzbuzz.pl
      
((                                                          '(' 
)).                                                          (( 
'^')^'~'^(''=='').''^'.').((''=='').''^')'^'='^'^').('('^'.'^'^' 
^'=').('^'^'(').('~'^(''=='').''^'.').('='^')'^'.'^'~'^'(').(('' 
=='').''^'='^'.').('^'^'.').((''=='').''^'='^'~').((''=='').''^( 
'(')^'^'^'.').('^'^(''=='').''^')'^'(').('.'^'~'^'('^'='^(''=='' 
).'').('.'^'^'^'='^(''=='').''^'~'^')').('(').((''=='').''^')'^( 
'^')).((''=='').''^'.'^'^'^'(').('='^'('^(''=='').''^'^').((''== 
'').''^'^'^'='^'(').(')').('='^')'^(''=='').''^'~').('='^'~'^'.' 
^((                                '')                       ==( 
'')                                ).(                       '') 
                                   ).(                       '(' 
                                   ^((                       '') 
                                   ==(                       '') 
                                   ).(                       '') 
                                   ^(                       '=' 
                                   )).                       (( 
                                   '^')                      ^( 
                              '(')^(')')).(                  '=' 
                              ^(''=='').''^                  ')' 
                              ).('^'^('~')^                  '.' 
                                                             ^( 
                                                            '=') 
                                                            ).(( 
                                                           '(')^ 
                                                        (''=='') 
                                                   .''^'~'^'.'^( 
                                                   ')')^('=')).( 
                                                   '.').('(').(( 
'~'                                                          )^( 
'('                                                          )^( 
')'                                                          )^( 
'=')).((''=='').''^'~'^'.'^'='^')').('='^'^'^(''=='').''^'(').(( 
'^')^'='^(''=='').''^'(').(')').(')'^'='^(''=='').''^'~').('.'^( 
''=='').''^'~'^'=').('='^(''=='').''^'(').('^'^'('^')').((''=='' 
).''^')'^'=').('^'^'~'^'('^'=').('='^'('^(''=='').''^'.'^'~'^')' 
).((''=='').''^'^'^'.'^'=').('^'^'='^'.'^(''=='').'').('.'^(''== 
'').''^'~'^'=').('('^(''=='').''^'=').(')'^'^'^'(').((''=='').'' 
^'='^'~'^'^').('~'^(''=='').''^'.'^'=').('='^(''=='').''^'(').(( 
')'                                )^(                       '.' 
)^(                                '('                       )). 
(((                                '')                       ==( 
'')                                ).(                       '') 
^(                                ')'                       )^( 
'~'                                )).                       (( 
'^'                                )^(                       ('' 
)==(                               ''))                     .'') 
.((                               '~')                     ^('' 
 ==''                            ).''^(                     '=') 
 ).((                          '^')^'~'                   ).(( 
  ''==(                        '')).'').((               '.')). 
  ('.').                      ((''=='').'').           ((')')^ 
  '('^(''==(               '')).'')  .('('^')'^(''=='').'').((
   ''=='').''^          '='^'('^'.'   ).((''=='').''^'='^'.') 
    .((''=='').''^'='^'^'^')'^'('^     '.').(')').''.''.''.( 
     '').''.''.''.''.''.''.''.''         .''.''.''.''.''.( 
      '').''.''.''.''.''.''.''.(          '').''.''.''.'' 
         .''.''.''.''.''.''.(                 '').'')
        

Acme::HeptaSymbolize

shape



Thank you for your attention.