It seems to me you'll need to invent an encoding scheme
and build the required "normal" program string from a string consisting of characters in
the ord range 0-32 ... then use Perl's eval function (or perhaps s///ee) to evaluate it.
This looks like a tricky problem to me, especially for a Perl novice.
Many approaches are possible.
One way to get started is to use the s/// and
the y/// operators with a delimiter less than ord(32) like so:
s^Z^Z^A^B^C^D^E^F^G^H^Z;
y^Z^A^B^C^D^E^F^G^H^Za-z^Z;
print
where
^A to
^Z above are CTRL-A to CTRL-Z (i.e. chars with ord 1..26).
Running the little test program above produces:
abcdefgh
You may be able to extend this scheme to produce whatever 30 or so characters are required by a "normal" (unencoded) solution. Having generated the required program string, you could
replace the
print above with
eval.
That would seem to yield a solution of around 11 "characters" in length.
If you start down this road, you may find further inspiration
as you try out ideas.
Some old nodes from mtve might provide further ideas you could try: