I recently dug this up; it was my entry for the ActiveState Perl Haiku contest. Shame it didn't win; it took me a long time to write it.
Once you've finished reading the individual haikus, copy down the code and run it! :)
Update:
I patched it; copying it from the page without using the 'download code' link should work correctly now.
s{}{${\(<<'.')}};s.^ +..mg.y.\t..d;
there are three virtues
of truly great programmers
i will list them here
they desire to
limit the total effort
that is expended
the clever coders
write stuff useful to us all
not just to themselves
they write their line noise
so that we may leave at five
not working all night
and thus they reduce
overall work that is done
themselves plus our own
their code can be seen
in many magazines and
all over the web
we all hate to wait
especially perl coders
so their code runs fast
it predicts your needs
makes the proper adjustments
to do The Right Thing
writing perl fast is
easy, you can omit the $_
(the default var rules!)
perl coders won't wait
long to find if it will work
-e does one-liners
perl coders are proud
they show off their code to us
and so make it good
to insult a perl
program is to insult the
coder who wrote it
so they code so well,
impeccably, perfectly
thus the third virtue
.
# this is the setup
# please do not treat this line noise
# as real syllables
@`=split//;@_=map{ord}split//,v22.
2.149.2.368.1.286.2.442.5.663.3.
299.3.123.2.17.1.36.2.862.3.118.2.
665.4.141.2.161.2.96.3.534.3.387.
6.30.1.584.2.0.1.48.2.253.2.95.4.0
;_:@_&&do{$%=$_[--$#_];$.=$_[--$#_
];print$`[$.++]for 1..$%;goto _};
--Stevie-O
$"=$,,$_=q>|\p4<6 8p<M/_|<('=>
.q>.<4-KI<l|2$<6%s!<qn#F<>;$,
.=pack'N*',"@{[unpack'C*',$_]
}"for split/</;$_=$,,y[A-Z a-z]
{}cd;print lc