I originally had this working in only 54 characters, but it seemed too obvious.  

It runs both in Linux ("perl <script>") and in Windows (but use a "cmd" shell so you can see the output).

$;='aq';$^X=~m;.+[/\\]([^\.]+);;`$1doc $1f$;4`=~m;"(.u.{22});;print$1, +$/
If you like the results, don't "peek" at how it's done yet ... try running it with the '4' changed to a '1', and it becomes all lowercase! ...
$;='aq';$^X=~m;.+[/\\]([^\.]+);;`$1doc $1f$;1`=~m;"(.u.{22});;print$1, +$/
Finally, change the string '"(.u.{22});' near the end of the line to 'th\.(.{17});m', and I think you'll truly be surprised:
$;='aq';$^X=~m;.+[/\\]([^\.]+);;`$1doc $1f$;1`=~m;th\.(.{17});m;print$ +1,$/

Update:  What am I thinking?!!  I forgot the most important person of all:

$;='aq';$^X=~m;.+[/\\]([^\.]+);;`$1doc $1f$;1`=~m;y (L.{9});m;print$1, +$/

Update:  ambrus pointed out that he had already created an obfuscation based on this method.  Sorry about that, ambrus!

Replies are listed 'Best First'.
Re: Opere Citato Japh
by ambrus (Abbot) on Sep 20, 2005 at 08:32 UTC
      Darn, I can't believe this was done before!  I was so excited when I came across $^X for obfuscating, well, the word it obfuscates.  (I won't spoil it for those who haven't tried it yet).  Oh well...
Re: Opere Citato Japh
by chester (Hermit) on Sep 20, 2005 at 05:08 UTC
    My first thought with the 4 and 1 is "Clearly some kind of crazy ASCII manipulation". I was so very wrong. Very clever.
Re: Opere Citato Japh
by truedfx (Monk) on Sep 20, 2005 at 12:13 UTC
    It doesn't work here - it simply prints out "perl5" for each. $^X is /usr/bin/perl5.8.7, so m;.+[/\\]([^\.]+); sets $1 to perl5. When I change it to m;.+[/\\]([^\d.]+);, it works; very nice.