For ppg256-7, see the current edition
ppg256 series
Perl Poetry Generators in 256 characters, by Nick Montfort
OLD, 1st edition ppg256-1
perl -le 'sub b{@_=unpack"(A2)*",pop;$_[rand@_]}sub w{" ".b("cococacamamadebapabohamolaburatamihopodito").b("estsnslldsckregspsstedbsnelengkemsattewsntarshnknd")}{$_="\n\nthe".w."\n";$_=w." ".b("attoonnoof").w if$l;s/[au][ae]/a/;print;$l=0if$l++>rand 9;sleep 1;redo}'
OLD, 1st edition ppg256-2
perl -le 'sub p{split/,/,pop;$_[rand@_]}{$_=p("sw,-aw,&w,saw".", "x$l);s//p("aw,w")/e;s// /g;$_="\n\nthe s\n"if!$l;s/s/ws/;s/a/p("a,the,to,of")/e;s/w/p("b,ch,f,gr,k,p,sh,s,sk,sp,tw")."i".p("ll,n,t")/eg;s/(b|p|f)i/$1.p("a,i")/e;print;$l=0if$l++>6+rand 9;sleep 1;redo}'
OLD, 1st edition ppg256-3
perl -le 'sub p{(unpack"(A3)*",pop)[rand 18]}sub w{p("apebotboyelfgodmannunorcgunhateel"x2)}sub n{p("theone"x8)._.p("bigdimdunfathiplitredwanwax")._.w.w."\n"}{print"\n".n."and\n".n.p("cutgothitjammetputransettop"x2)._.p("herhimin it offon outup us "x2);sleep 4;redo}'
OLD, 1st edition ppg256-4, LED sign version
perl -e 'sub c{$_=pop;$_[rand split]}sub w{c("b br d f fl l m p s tr w").c"ad ag ap at ay ip on ot ow"}{$|=print"\0\0\0\0\0\1Z00\2AA\33 b".c("be de mis re pre ").w." ".c("a on the that")." ".w.w.", ".c("boss bro buddy dogg dude guy man pal vato")."\4";sleep 4;redo}' > /dev/alpha
OLD, 1st edition ppg256-4, terminal version (no LED sign)
perl -le 'sub c{$_=pop;$_[rand split]}sub w{c("b br d f fl l m p s tr w").c"ad ag ap at ay ip on ot ow"}{$|=print "\n".c("be de mis re pre ").w." ".c("a on the that")." ".w.w.", ".c("boss bro buddy dogg dude guy man pal vato")."\4";sleep 4;redo} #No LED sign version'
OLD, 1st edition ppg256-5
perl -le '@a=split/,/,"conceptual,digit,flarf,maximal,modern,pixel,quiet,real";sub f{pop if rand>.5}sub w{$a[rand@a]}{print f("post").w."ism ".w."s ".f("the ").w."\n".(" "x45)."WHAT DOES ppg DO?";$a[rand@a]=~s/[aeio]/substr("aeio",rand 4,1)/e if $l++>5;sleep 5;redo}'
OLD, 1st edition ppg256-6
perl -le '@d=split/ /,"eros won to tree for fire sex sever ate nice tin elfin wealth";@t=split//,"_bhlmnpstw";{$_=localtime;/(..):(.)(.):(.)(.)/;print"\n$t[$3]".($4%2)."ck $t[$4]".($3%2)."ck\n"if!$5;print"\\"x$5." $d[$1%12] $d[$2] $d[$3] $d[$4] $d[$5]";sleep 1;redo}'