Perl
от Всичко за 1 лев, свободната енциклопедия
| Версия от 11:46, 18 яну 2010 KYPBATA (Беседа | приноси) ← Go to previous diff |
Текуща версия XPucTu4 (Беседа | приноси) По същество |
||
| Ред 11: | Ред 11: | ||
| В Perl има и регулярни изрази, с които могат да се обработват текстови данни по зададен шаблон. Използва се най-вече в софтуера за черни магии при неопределени заклинания. | В Perl има и регулярни изрази, с които могат да се обработват текстови данни по зададен шаблон. Използва се най-вече в софтуера за черни магии при неопределени заклинания. | ||
| - | 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. */ | ||
| + | |||
| [[Категория:Програмни езици]] | [[Категория:Програмни езици]] | ||
| [[Категория:Сатанизъм]] | [[Категория:Сатанизъм]] | ||
Текуща версия
Истерията
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. */
