Perl

The Pathetic Excuse for a Real Language, or PERL for short, is a common language for programming heaters and other compatible devices. 
==In the very beginning==
Perl was developed by an anonymous group of chinese mainstream goths in 1890 as a portable bra replacement. The developers sought to create a programming language whose syntax was slightly more accessible than Brainfuck, but whose programs executed much, much more slowly (coincidentally, these are the exact same principles on which Java would later be based). The first Perl prototype was literally a hacked version of the GNU C Compiler that injected a do-nothing for loop with 1,000,000 iterations in order to slow the programs down. Eventually, more misguided modifications were made to GCC, such as complaining about non-existent syntax errors, recognizing any non-alphanumeric UTF-8 character as an operator, the removal of variable typing, and the allocation of 1KB of system memory foreach variable irrespective of content. When programs that functioned with this hacked compiler were no longer recognizable as the C language, Perl was born.
==The PERL Paradigm==
PERL is based on the write-only programming paradigm. Since it cannot be read, the costs associated with peer reviews, coding standards, and other so-called industry best-practices are completely eliminated. This is the primary reason that Amazon.com can charge so little for its goods and services.
Perl syntax reflects the idea that "things that are different should look ugly"
==Famous PERL Coders==
===Sir Arthur Conan Doyle===
Sir Arthur Conan Doyle was the most famous PERL programmer, credited with such classics as "Greetings, inhabitants of this planet," (which later provided insight for Bill Gates' Hello World), and "Ninja Turtles: Turtles On Ice."
===Larry Wall===
Larry Wall is another (in)famous PERL programmer though most agree that he is a reclusive cult leader bent on using PERL to take over the world. His cult followers claim he created the PERL language but evidence proves that it was indeed created by mainstream Chinese goats.
He was originally the descendant and heir of a long line of Jedi Code Warriors entrusted with the proliferation and progress of Perl; but owing to a rift with his Master Billygoat Gates over details of a tea party, Wall decided to break the rules of Code Warriors and deleted Gates' login from the codebase and effectively took over Macrohard, the parent company of Microsoft.
Wall gained brief popularity with Christians in the early 1980s when he introduced religious keywords in PERL such as "bless," "confess," and "roflcopter." His popularity dropped, however, when Christianity went out of fashion.
Today, Wall is believed to be hiding in the Alps and is supported by his followers who are mostly tall, busty, blue-eyed, blonds.
===Richard M. Stallman===
Richard M. Stallman (rms) is a closeted Perl Monger (PM-- not to be confused with the .pm file extension used to designate files created in the afternoon). He regularly attends PM meetings, but only as his Saint IGNUcius alter-ego to maintain plausible deniability. rms personally co-wrote and endorsed all modifications to GCC that led to Perl's creation. When Larry Wall called him a "hobo" outside a free software convention, rms began to publically criticize Perl, instead favoring the even more bloated Lisp.
===Randal L. Schwarz===
Randal L. Schwartz is less famous than Doyle, but more infamous than Wall, and more pompous than Linus Torvalds: little Randal was already known at the MIT for abusing other people's sessions and perusing any system's CPU he can lay his dirty sticky fingers on. This extreme aggressive behavior of him is said to be a remnant of a childhood trauma; one hot summer day in 1972 at the Gay Parade in Gdansk, Randal junior got stuck in a hula hoop trying to snatch someone's plate of lutefisk, he tripped over and accidentally swallowed all the beads and pearls that hung on his neck, along with the lutefisk. That day, the beads and pearls never came out and for the lutefisk, this is still under scientific investigation. Later on, he joined Wall's PERL sect. His intense joy and relief with the PERL cult was immediate. Nowadays, he still reminds this experience as "the most voluptuous stuffing a human can get" and gets very excited at the word "loop" and systematically transforms any loops into infinite loops. As he stated in the international press conference at the fall of the Wall of Berlin : "Loops make it like you are actually doing something on you..somebody's computar! It's the Hula Loop, the holy bead of PERL!". 
He is the originator of PERL's motto : there is more than one way to do it but you'd better do it MY WAY!.
Randal has co-authored the Lama book "Get rid of that PERL attitude in 24 hours" and is still very active in the PERL sect and is the fellow janitor of newsfroup news://comp.lang.PERL
==Nowadays==
Nowadays nothing is such clear, as it was before. Celtic Glasgow decided to skip every nth frame in singular mpeg file, but Zig preferred to set up the CGI bombs. Philips is German and stole my pen! (not necessarily a fact)
Over the years, PERL mutated more and more and finally reached a stage where the syntax changes all day long, it takes about 3 hour until the complete syntax has changed. It now combines the power of sh, the clarity of sed, and the performance of awk with the simplicity of C. This makes it rather hard to learn or write PERL, but Gordon Flash did an attempt to solve this Problem: the PERL-Utility-For-Future-Syntax (short PUFFS). The usage of this Tool requires very strict Project & Time Management in the area of Software Development, the workflow is as follows:
*Do the time-planing for the Project and figure out the exact time when the PERL code will be written
*Run PUFFS to generate the presumably PERL syntax of that time
*write your PERL code
*wait until time X
*check if PUFFS was right (the chance is currently 32%, but will increase with the next releases of PUFFS)
*if no go back to point 1
==Sample PERL code==
PERL is known to look like line noise, which makes it unreliable over a modem connection. Any string of punctuation characters is valid Perl. Thus, bowdlerized curse words, with any whitespace removed, serve as a sound example.
Here are some real-world examples of PERL code:
;How to Cockfight in PERL
 #!/usr/bin/PERL
 
 INFILE (mychicken, "http://www.old-store-run-by-an-immigrant.com/immigrant/pets/rooster.chicken");
 $chicken = mychicken;
 if ($immigrants_mood == $pissed_off_for_stealing_chicken) {
 if ($immigrants_head != $bloody) {
 beat $immigrants_head with $nearest_hard_object;
 }
 }
 @nearest_club = ("people in club","$me","$chicken")
 if ($other_cockfighter =~ @nearest_club) {
 challenge $other_cockfighter;
 &chicken('peck_like_heck',"other_chicken") /// don't use $ !!!! :P
 &collect_money;
 if ($other_cockfighter beats up $me) {
 &chicken('peck_like_heck',"other_cockfighters_face"); /// don't use $ !!!! :P
 }
 }
 if (@cops =~ @nearest_club) {
 &get_the_crap_out_of_there;
 }
 if ($cops catch $me) {
 &do_jail_time;
 }
One of the basic rules of PERL is that there is never just one way to do anything and there's always a shorter way. Here is the same code re-written by a PERL master in just one line:
 c8R";@d=split/(map{$P=$P[$f^ord/,"\nrekcah xinU/P,P);pipe"r$p"LREP rehtona tsuJ";$q*=2)+=$f=!fork;subp{@p{"r$p","u$p"}=(,"u$p";++$p;($p{$_})&6];$p{$_}=/ ^$P/
Or, sacrificing readability a bit, this can be rewritten simply as:
 $/!~?^%;
Or alternatively (in demonstration of PERL's flexibility):
 Schlumorp!
While many languages can be used to encrypt data, PERL has something built-in that gives you encryption. PERL calls it "syntax". For example, the below code implements children's alphabets.
 # nato.pl ##########################################
 use strict;sub Interleave{local$.;map{substr($_,0,1)
 => @{$_[0]}[$.++]}@{{$_[0]}}my %NATO_PHONETICS=>my%g=
 Interleave (([qw(
 Alpha Echo
 Charlie Golf
 Bravo Quebec
 Foxtrot Kilo
 Hotel Sierra
 Uniform Juliet
 India November
 Whiskey Victor
 Oscar Yankee
 Tango Lima
 Delta Zulu
 Mike X-Ray
 Romeo Papa )]));;
 $\="\n";$_=(join$\,@ARGV or print(++$|,'> '),<STDIN>
 );print join' ',grep{ $_ = $g{uc $_}|| $_} split //;
 =usage: pass in msg on cmd line or input at prompt ;
==Future==
Windows Vista has been rumored to be a complete port of the original PERL Windows code into C. This would explain, well, everything.
==Resources for PERL Programmers==
One of most popular book for learning how to program in PERL is Programming PERL for Pre-schoolers. Its simple approach to teaching and pretty camel cartoon make it a standard for programmers of any age, especially the mentally retarded. Books continue to be the most common source for learning to Program PERL since many books on PERL are thick enough to knock yourself unconscious when realizing how poor the language and for that matter your life is.
Other programmers believe in looking to the Internet for learning how to program PERL, while this makes total sense, real programmers shun these people since they decided to spend hundreds upon hundreds just to learn how to program PERL better.
It is also common practice for many programmers to gather in small rooms to learn PERL as a group, not much is known about this practice by outsiders, but many professionals (like Tom Cruise) conclude that there must be something to do with either an orgy, or a virgin sacrifice (with the latter being more plausible, as there is no shortage of possible candidates among PERL programmers) .
==PERL shortcomings==
Like all other spoken languages, PERL has its problems. Throughout the years the cult of the Camel forbade some of the most serious of them to be fixed, because it would be considered treason to their God, and he would force them to use C for the rest of their wretched life. For example, the built-in join function for turning arrays into scalars acts too chaotically and the result is not always what the programmer desired. There are underground illegal coding sects, which developed fixes for problems such as this one. The following function fixes the behavior of join and is currently used by many PERL programming outcasts
 sub orgy($@)
 {
 my $sep = shift;
 my $result;
 while (@_) {
 $result = $result . $sep . pop . $sep . shift;
 $result = shift .$sep. pop . $sep. $result;
 }
 return $result;
 }
Running it on a array such as (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27) produces the desired result 14::12:16:10:18:8:20:6:22:4:24:2:26::27:1:25:3:23:5:21:7:19:9:17:11:15:13
==WTF a Camel! LOL==
Reasons people associate the camel and PERL Programmers:
*They are ugly
*They spit at people they don't like
*They spit at people they like
*They smell like spit
*They eat small un-attended children
*They drink in heavy amounts over long periods of time
*They hunger for human flesh every full moon
*They use CamelCase
*This shit doesn't make sense. May as well confuse people with a camel.
*Apparently, using an onion for the symbol is even more official for PERL than mere mortal eyes can bear witness to; or comprehend for that matter.
It's obvious that the above list applies to not only PERL Programmers, but also Camels, and maybe Llamas too. To this day no other animal has been able to symbolize PERL programmers as well as the camel; its association with PERL dates back to 1900 when Bill O'Reilly was beaten to near death by a stick wielding camel.
Category:Languages
Category:Computers
Category:Programming languages
pt:Perl
ru:Perl