[comp.lang.perl] Programming with a broken keyboard

worley@compass.com (Dale Worley) (02/13/91)

If the letters and digits are missing from your keyboard, you can use
the following skeleton to execute Perl programs:

$= = $-;
$: = $=++;
$: .= $=++;
$: .= $=++;
$: .= $=++;
$: .= $=++;
$: .= $=++;
$: .= $=++;
$: .= $=++;
$: .= $=++;
$: .= $=++;

$] =~ /^...(.)/;
$_ = $+;
$~ = $_;
$, = $_;
$: .= $_;

$_++;
$: .= $_;

$_++;
$, .= $_;
$: .= $_;

$_++;
$: .= $_;

$_++;
$\ = $_;
$: .= $_;

$_++;
$: .= $_;

$_++;
$" = $_;

$_++; $_++; $_++; $_++;
$, .= $_;

$_++;
$~ .= $_;

$_++; $_++; $_++; $_++;
$, = $_ . $,;

$_++; $_++;
$: = $_ . '/?@#,%^&*()_+|~:</' . $: . '/';

$_++;
$; = $_;

$_++;
$: = $_ . $:;

$_++; $_++;
$~ = $\ . $_ . $~;

$] =~ /^.(.)/;

$; = "-$\\ '\$$; = \"" . <<'['
*?*#&)&:*%#?#*%_*^*,*%#?&@&:&<*%&(&^*##?^?&^*#&|#?&(&@&,&+&^*##|?_#*,+
[
. "\"; \$$; =~ $;/\\$;//$\"; \$$; =~ $:; $~ $,(\"$+*\", \$$;);'";

$] =~ /: (....)/;

$= = ++$-;
$-++;
`$+ $; $=>&$-`;

You have to translate your program into hex (using the characters
?@#,%^&*()_+|~:< ), and replace the long line near the end with it.
(You can break the program up into lines if you wish.)  The following
fragment will do the translation for you:

$a = "print 'Just another Perl hacker,\n';";

$a = unpack("H*", $a);

$a =~ tr/0123456789abcdef/?@#,%^&*()_+|~:</;

print $a, "\n";

Dale

Dale Worley		Compass, Inc.			worley@compass.com
--
The notion of a "record" is an obsolete remnant of the days of the
80-column card.	-- Dennis M. Ritchie

kstock@isfrance.encore.fr (Kevin Stock,MIS,346,) (02/14/91)

Dale Worley (obviously over the brink of insanity) writes:
> If the letters and digits are missing from your keyboard, you can use
> the following skeleton to execute Perl programs:

Yes, but do you explain to your sysadm that you want *?&^*#&| created as
a link to perl?

> Dale Worley		Compass, Inc.			worley@compass.com

Incidentally, this showed up a bug in perl on one of my platforms. Unpack
just returned its format string. This is at patch level 44. Is this a
known problem?

  ,---------------.
,-+-------------. |    Kevin Stock
| | E N C O R E | |
| `-------------+-'    kstock@gouldfr.encore.fr
`---------------'      kstock@gouldfr.UUCP

Any opinions expressed are my own, but may be reproduced under the terms
of the GNU licence. See the file COPYING at the end of this posting. :-)