Perl

от Всичко за 1 лев, свободната енциклопедия

Истерията

Perl - любимият език за програмиране на Дявола и неговите поклоници. Първоначално езикът бил кръстен Pearl, по библейската притча за царството небесно и перлата. Естествено, Дяволът обича да се намесва във всичко с библейски корени и покварил езика, за да не могат програмистите да отидат в рая.

В крайна сметка имаме Perl.

По същество

Perl е най-доброто средство за управление на процеса на създаване на неуправляем код. За всяка програма, написана на Perl с над хиляда реда код, е емпирично доказано, че след пет часа следобед не е известно какво прави, а след още пет минути прави нещо друго. Като следствие най-добрата методология за писане програми на Perl е програмистът да не знае какво прави и да се опита да направи нещо друго. Тези му свойства го правят изключително добре приложим за създаване на софтуер за хороскопи и черни магии. Подвластните често употребяват засукани заклинателни думи като TIMTOWTDI, timtoday, !@#$%~`(()&-+*/-\q,.<>?:;q[]{} и прочие. Поради паганистичния характер на култа поведението на кода силно зависи от фазата на луната и необяснимите космически сили. На Perl е доказано, че може да се напише програмата, която прави всичко, само на един ред с бъг. Всяка програма по-голяма от един екран съвсем закономерно развива собствен интелект, воля и се оформя като отделна личност водеща свой собствен живот.

Perl има изключително гъвкав синтаксис, което позволява логиката на една програма да бъде вързана на фльонга. Позволява описването на житейски сентенции като: live() or die;, rock() and roll(); и пр.

В Perl има и регулярни изрази, с които могат да се обработват текстови данни по зададен шаблон. Използва се най-вече в софтуера за черни магии при неопределени заклинания.

Perl е единственият език който изглежда по един и същ начин преди и след криптиране. Perl е единственият език в който можете да ударите с глава по клавиатурата и той да се компилира.

Честа практика е първо да се напише софтуер на Perl, и след това да се търси за какво може да бъде използван. Стар и често използван трик е да се пусне stderr през uniq. Ако сте сигурни, че нещо НЕ е написано на Perl, пробвайте го в интерпретатора - обикновенно работи.

Сорс код и коментари

Извадките са от сорса на Perl v4. Някой от тях може да са там и днес.

cons.c

   double value; /* or your money back! */
   short changed; /* so triple your money back! */
   /* now make a new head in the exact same spot */


perl.c

   #define NULL 0 /* silly thing is, we don't even use this */
   #define SIGILL 6 /* blech */
   if (rsfp = mypopen('/bin/mail root','w')) { /* heh, heh */

stab.c

   /* And you'll never guess what the dog had */
   /* in its mouth... */
   break; /* don't do magic till later */
   stab_val(stab)->str_nok = 1; /* what a wonderful hack! */
   tmps_base = tmps_max; /* protect our mortal string */

util.c

   pos += screamnext[pos] /* does this goof up anywhere? */
   str->str_pok |= SP_FBM; /* deep magic */
   s = (unsigned char*)(str->str_ptr); /* deeper magic */


cmd.c

   /* we have tried to make this normal case as abnormal as possible */

doio.c

   s = (char*)(long)retval; /* ouch */

doarg.c

   signal(i, SIG_DFL); /* crunch, crunch, crunch */

eval.c

   if (instr(buf,sys_errlist[errno])) /* you don't see this */

hash.c

   /* dbmrefcnt--; */ /* doesn't work, rats */

str.c

   #else /* !STDSTDIO */ /* The big, slow, and stupid way */

toke.c

   /* This bit of chicanery makes a unary function followed by a parenthesis into a function with one argument, highest precedence. */
Лични инструменти