Black Perl

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Black Perl is a famous piece of Perl poetry. It was posted to Usenet on April 1, 1990. It is written in Perl 3 and will not parse under Perl 5. Multiple independent updates to Black Perl to make it parsable in Perl 5 have been published.[1][2] The full text of the poem is reproduced below.

Attribution[edit]

While the poem itself is signed Larry Wall, the original message was posted with forged message headers, causing uncertainty of authorship. Sharon Rauenzahn, born Hopkins, has been suspected, but has denied authorship.[3] Randal Schwartz has claimed that Larry Wall is in fact the author,[4] and later on Larry Wall confirmed[5] that claim.

Result of program execution[edit]

When executed, Black Perl exits on line one, upon reaching the function exit. The remaining lines are parsed by the Perl interpreter but never actually executed. The program produces no output.

"Black Perl"[edit]

BEFOREHAND: close door, each window & exit; wait until time.
    open spellbook, study, read (scan, select, tell us);
write it, print the hex while each watches,
    reverse its length, write again;
    kill spiders, pop them, chop, split, kill them.
        unlink arms, shift, wait & listen (listening, wait),
sort the flock (then, warn the "goats" & kill the "sheep");
    kill them, dump qualms, shift moralities,
    values aside, each one;
        die sheep! die to reverse the system
        you accept (reject, respect);
next step,
    kill the next sacrifice, each sacrifice,
    wait, redo ritual until "all the spirits are pleased";
    do it ("as they say").
do it(*everyone***must***participate***in***forbidden**s*e*x*).
return last victim; package body;
    exit crypt (time, times & "half a time") & close it,
    select (quickly) & warn your next victim;
AFTERWARDS: tell nobody.
    wait, wait until time;
    wait until next year, next decade;
        sleep, sleep, die yourself,
        die at last
# Larry Wall

References[edit]

  1. ^ jonadab (2003-02-21). "Black Perl updated for Perl 5". Retrieved 2007-09-15. 
  2. ^ Ovid (2006-10-17). "Black Perl Revisited". Retrieved 2007-09-15. 
  3. ^ Sharon Hopkins (1993-04-16). "Re: Forking a bunch of processes...". Newsgroupcomp.lang.perl. Usenet: 1993Apr16.233742.21214@cheshire.oxy.edu. Retrieved December 5, 2014. 
  4. ^ Randal L. Schwartz (2001-09-04). "Re: Black Perl". Newsgroupcomp.lang.perl.misc. Retrieved December 5, 2014. possible original message-id:m17kvf830n.fsf@halfdome.holdit.com 
  5. ^ "IRC conversation with Larry Wall (TimToady)". 2010-05-11. Retrieved 2010-05-11.