Perl mágia

A Kedves Olvasó feladata megfejteni, hogy az alábbi Perl kód (nem, nem line noise!) mit csinál, anélkül, hogy lefuttatná. Aki kitalálja, az előtt maga Larry is kalapot emelhet.

($,,$",@_)=($",$,,'>'^'[','+'^']','?'^'^','@'^',','?'&'`','?'^'[','@'^'/','{',
'@'^',','@'^'/','>'^']','?'^'^','@'^',',
'($_,%_,$%)=\'`-=[];,./~!@#$%^&*()_+|{}:"<>?\';','_'^',','/(.)/$_{$',!$%,
'}=$%++/','<'^'[','>'^'[',';','"'^'(','$_=$','>'^'{','.'^'`','}'^'+','{__};',
'_'^',','@(.{',("<"&':')-!$%,'})@$%-=$%;','+'^'[','?'^'^','>'^']','+'^'@','"',
'.'^'`','",','_'^'-','>'^'[','+'^']','>'^'[','_'^'-','_'^',','>'^'[','?'&'`',
'@'^'-','?'^'^','+'^'[','{$%=$%*($=>>!$[)+$_{$_}}','"'^'(','_'^',','+'^'[',
'@'^',',')'^'@','+'^'_','//,$',!$%,'@','<'^'[','>'^'[',';$_}'
);@{"@{['>'^'{','.'^'`','}'^'+']}"}{___,__}=("@_",'=*)==&,=_;.")^=)%&</;=)`%'.
'?+,=)+$**<`|#,){)=_;/~|?=(??*&+=&,%)(|=./&@~}=.."](`=./-_$.=..%_]@`|@.%`,=~'.
'}*?$?=^^"%?!=#{|+]_=#{|---=&<>(.;=&[^#$``{)`;=`'
);`@{['+'^'[','>'^'[','_'^'-','@'^',',"$,-",'>'^'[']}$,"\$___">&@{[!$|+!$%]}`

Na jó, írok egy könnyebbet is (ami szintén saját találmány):

eval{require$=**$]};$_=(gmtime$[).$@;@_=/..(.)/;s/:/$&^uc@_[$|]/e;$#=$/;#_+=$.
@_=split$^=!$=;print$^,(map{$_[$%+=-$=-2+ord$_]}split$^,'>?V8C???*;G3V*=T'),$]

Akinek még az előbbi is nehézséget jelentett, következzen egy ,,mentőkérdés''. Miért nem ad hibaüzenetet a perl, ha a következőt próbáljuk futtatni:

s e n d   m e   y o u r   c o d e

Ezek után már felüdülést jelent a következő programkód, amely Perl-ben is fut, és C-ben is lefordul:

#include <stdio.h> /*
print "Hello, Perl!\n";
__END__
*/

int main(int argc, char **argv) {
  printf("Hello, C!\n");
  return 0;
}

Mellesleg ugyanezt meg lehet csinálni Pascal-lal, C++-szal, és QBasic-kel is (ekkor a kezdő karakterek {, // illetve ''; lesznek).

1999. szeptember 22.
Budaörs, Magyarország.


Ez a lap pts oldalai közül való.