Perl poetry

Just thought this was interesting; in another topic, "CS pedagogy," someone brought up the topic of art and programming, and I started digging into that a little bit and I found this:
It's called "The Black Perl" and it's supposed to be an actual program written in Perl, but it's also a poem.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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;
AFTERWORDS: tell nobody.
    wait, wait until time;
    wait until next year, next decade;
        sleep, sleep, die yourself,
        die at last


Unfortunately, when I run it, I get all these weird errors, like:
Hash %window missing the % in argument 1 of each() at /Programs/black perl.pl line 1.
Hash %watches missing the % in argument 1 of each() at /Programs/black perl.pl line 3.
Array @them missing the @ in argument 1 of pop() at /Programs/black perl.pl line 5.
String found where operator expected at /Programs/black perl.pl line 7, near "the "goats""
	(Do you need to predeclare the?)
String found where operator expected at /Programs/black perl.pl line 7, near "the "sheep""
	(Do you need to predeclare the?)
Array @moralities missing the @ in argument 1 of shift() at /Programs/black perl.pl line 8.
Hash %aside missing the % in argument 1 of values() at /Programs/black perl.pl line 9.
Hash %one missing the % in argument 1 of each() at /Programs/black perl.pl line 9.
Hash %sacrifice missing the % in argument 1 of each() at /Programs/black perl.pl line 13.
Use of "do" to call subroutines is deprecated at /Programs/black perl.pl line 15.
Use of "do" to call subroutines is deprecated at /Programs/black perl.pl line 16.


If anyone knows what's going on here, help would be appreciated!
Thanks!
max

Here's where I found it:
https://en.wikipedia.org/wiki/Black_Perl
Last edited on
Topic archived. No new replies allowed.