“The biggest part of learning Perl is learning how Larry (the author of the language) thinks. Therefore, as soon as you can think the same way Larry does, you will know what Perl should do in each case. But while you study, you should sometimes look into the documentation. "
If you want to program in C, program in C. It's a nice language. I use it occasionally ...
#define _c(C)_ (C)&('|'+3):c_()(C)>>('\n'-3) __; /**/ #define C char* #define keyboard ",,B3-u;.(&*5., /(b*(1\036!a%\031m,,,,,\r\n" #define main(o,oo)oo(o){ #define _ ;case C #define c_(cc)c cc= #define C_(sand)_O(sand)witch o=keyboard; #define __ ;break; C ccc( cc) C cc; { C cccc= cc;int #ifndef lint #define keyboard "dijs QH.soav Vdtnsaoh DmfpaksoQz;kkt oa, -dijs" #endif c; main(;c_(=(*cc);*cc++)c,for); #define _O(s)s main(0xb+(c>>5),C_(s)) _'\v' :__ _'\f': main(c,C_(s)); _c(8098)_c(6055)_c(14779)_c(10682) #define O_(O)_O(O)stem(ccc( _c(15276)_c(11196)_c(15150) #define _C ;return _c(11070)_c(15663)_c(11583) } __ default :c_(+)o[c&__LINE__-007]; main(c_(-)'-'-1,C_(s))_ 0214 :_ 0216 :c_(+)025 _ 0207 :c_(-)4 _ 0233 :c_(+)' '-1; }}c_(&)'z'+5; }_C cccc; }main(,cc) C #define O write(1, c="O"; O_(sy) keyboard)); main(;;,for); read(0, c,1);* c_(&)'~'+1 ;O ccc( c), '\0'); main(*c, C_(s));_ 4 :O_(sy)";kkt -oa, dijszdijs QQ"))_C _ 13 :O o+' ', 3 ) #undef main __ _ 127:O"\b \b",3)__ default :O c,1) __}}}main(){ cc(); # The grand prize in most well-rounded in confusion Larry Wall System Development Corporation Santa Monica California US of A ## Judges' comments: The original version did not have a ';' character in the first line. This caused a number of System VC pre-preprocessors to gripe about a syntax error. This program is a masterpiece of obfuscation and humor. Larry Wall (the hacker who gave us rn and patch) asks you to compile and consider the warning message generated by the C compiler. Then execute the program and type charters into its standard input. You will see why the compiler documents the program. Copyright (c) 1986, Landon Curt Noll & Larry Bassel. All Rights Reserved. Permission for personal, educational or non-profit use is granted provided this this copyright and notice are included in its entirety and remains unaltered. All other uses must receive prior permission in writing from both Landon Curt Noll and Larry Bassel.
#define iv 4 #define v ;(void #define XI(xi)int xi[iv*'V']; #define L(c,l,i)c(){d(l);m(i);} #include <stdio.h> int*cc,c,i,ix='\t',exit(),X='\n'*'\d';XI(VI)XI(xi)extern(*vi[])(),(* signal())();char*V,cm,D['x'],M='\n',I,*gets();L(MV,V,(c+='d',ix))m(x){v) signal(X/'I',vi[x]);}d(x)char*x;{v)write(i,x,i);}L(MC,V,M+I)xv(){c>=i?m( c/M/M+M):(d(&M),m(cm));}L(mi,V+cm,M)L(md,V,M)MM(){c=c*M%X;V-=cm;m(ix);} LXX(){gets(D)||(vi[iv])();c=atoi(D);while(c>=X){c-=X;d("m");}V="ivxlcdm" +iv;m(ix);}LV(){c-=c;while((i=cc[*D=getchar()])>-I)i?(c?(c<i&&l(-cc, "%d"),l(i,"+%d")):l(i,"(%d")):(c&&l(M,")"),l(*D,"%c")),c=i;c&&l(X,")"),l (-i,"%c");m(iv-!(i&I));}L(ml,V,'\f')li(){m(cm+!isatty(i=I));}ii(){m(c=cm = ++I)v)pipe(VI);cc=xi+cm++;for(V="jWYmDEnX";*V;V++)xi[*V^' ']=c,xi[*V++] =c,c*=M,xi[*V^' ']=xi[*V]=c>>I;cc[-I]-=ix v)close(*VI);cc[M]-=M;}main(){ (*vi)();for(;v)write(VI[I],V,M));}l(xl,lx)char*lx;{v)printf(lx,xl)v) fflush(stdout);}L(xx,V+I,(c-=X/cm,ix))int(*vi[])()={ii,li,LXX,LV,exit,l, d,l,d,xv,MM,md,MC,ml,MV,xx,xx,xx,xx,MV,mi}; # Most Useful Obfuscation Larry Wall Unisys - System Development Group Santa Monica 9132 Kester Ave Panorama City, CA 91402 USA ## Judges' comments: ### Try: lwall | bc | lwall input: x*x input: c^2 ### Also try: lwall | bc and lwall | cat What we found amazing was how the flow of control was transferred between subroutines. Careful inspection will show that the array of pointers to functions named 'vi' refers to functions which seem to not be directly called. Even so, these pointers to functions are being used as an argument to signal. Can you determine why this is being done and how it is being exploited? Some compilers complained about this file, so we changed: '=++I' to '= ++I'. Copyright (c) 1987, Landon Curt Noll & Larry Bassel. All Rights Reserved. Permission for personal, educational or non-profit use is granted provided this this copyright and notice are included in its entirety and remains unaltered. All other uses must receive prior permission in writing from both Landon Curt Noll and Larry Bassel.
“I know some successful projects with democratic principles. But most people are not ready to learn enough to be able to listen to their opinions. ”
Source: https://habr.com/ru/post/310938/
All Articles