Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sun-barr!olivea!samsung!dali.cs.montana.edu!uakari.primate.wisc.edu!aplcen!boingo.med.jhu.edu!haven!uvaarpa!mmdf From: worley@compass.com (Dale Worley) Newsgroups: comp.lang.perl Subject: Programming with a broken keyboard Message-ID: <1991Feb12.212520.29805@uvaarpa.Virginia.EDU> Date: 12 Feb 91 21:25:20 GMT Sender: mmdf@uvaarpa.Virginia.EDU (Uvaarpa Mail System) Reply-To: worley@compass.com Organization: The Internet Lines: 94 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/?@#,%^&*()_+|~: