#!/usr/bin/perl -w @slowa = ( [ "bog", "in" ], [ "hole", "in" ], [ "tree", "on" ], [ "bough", "on" ], [ "limb", "on" ], [ "branch", "on" ], [ "twig", "on" ], [ "leaf", "on" ], [ "nest", "in" ], [ "bird", "in" ], [ "egg", "in" ], [ "yolk", "in" ], [ "chick", "on" ], [ "wing", "on" ], [ "feather", "on" ], [ "flea", "on" ], [ "eye", "on" ], [ "germ", "on" ], [ "amoeba", "on" ], [ "paramecium", "on" ], [ "virus", "in" ], [ "subatomic particle", "in" ] ); while($foo = $slowa[++$i][0] ) { # refren print "Oh'ro the rattlin bog / ", "and the bog down in the valley o'\n", "Rare bog, rattlin bog / ", "and the bog down in the valley o'\n\n"; push @spiewam, $foo; print " \u$slowa[$i-1][1] that $slowa[$i-1][0] there was a $foo\n", " Rare $foo, rattlin' $foo\n\n"; $j = @spiewam; foreach $bar (reverse @spiewam) { print("\t", ( map {$j == @spiewam ? ucfirst : "And $_"} $bar) , " $slowa[$j-1][1] the ", "$slowa[$j-1][0],\n"); $j--; } print (($i == @slowa-1 ? "\tAnd t" : "\tT"), "he bog down in the valley-o'.\n\n"); }