in reply to 99 bottles, 2 lines

$a='on the wall';$b=99;$c="bottles of beer";do{print"$b $c $a, $b $c\nTake one down, pass it around\n$b $c $a!\n\n"}while(($b--)>0)

Replies are listed 'Best First'.
Re: 99 bottles, 2 lines -Didnt login- hehe
by Anonymous Monk on Aug 04, 2003 at 00:28 UTC
    got it even smaller (126 bytes)

    @a=(" bottles of beer",'on the wall ');die map{"$_@a$_$a[0]\nTake one down, pass it around\n".(--$_||No)."@a\n"}reverse(1..99)
      oh no... forgot to login too *g*
        129, and properly decrements the count inside of the verse

        $i=99;$b="bottles of beer";$o=" on the wall";while($i){print "$i $b$o, $i $b\nTake one down, pass it around\n",--$i," $b$o!\n\n"}

        186, but accounts for the fact that you would say 1 bottle but still say 0 bottles.

        $i=99;$f=" of beer";$o=" on the wall";while($i){$b="bottle";$b.="s"if$i!=1;print" $b$f$o\n\n"if$i!=99;print"$i $b$f$o, $i $b$f\nTake one down, pass it around, ",--$i}print" ${b}s$f$o\n";

        --Gilder
Re: 99 bottles, 2 lines -Didnt login- hehe
by ambrus (Abbot) on Dec 15, 2011 at 16:32 UTC