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. */