http://www.perlmonks.org?node_id=146505


in reply to 99 Bottles Of Beer (can't we do better)

well,if its golf we're playing , then a couple of minor changes saves a few lines :
$nBottles = ($ARGV[0] > 0) ? $ARGV[0] :100; foreach (reverse(1 .. $nBottles)) { $s = ($_ == (1 || 2)) ? "" : "s"; print "\n$_ bottle$s of beer on the wall,\n$_ bottle$s of beer,\nTake +one down, pass it around,\n" , ($_ - 1)," bottle",(($_ - 1) == 1) ? " + " : "s "," of beer on the wall\n"; } print "\n*burp*\n";
Second Update Reduced by a couple more lines :
$nBottles = ($ARGV[0] > 0) ? $ARGV[0] :100; foreach (reverse(1 .. $nBottles)) { print "\n$_ bottle",($_ == (1 || 2)) ? "" : "s"," of beer on the wall, +\n$_ bottle",($_ == (1 || 2)) ? "" : "s"," of beer,\nTake one down, p +ass it around,\n" , ($_ - 1)," bottle",(($_ - 1) == 1) ? " " : "s "," + of beer on the wall\n";}print "\n*burp*\n";
Update: fixed a typo (thanks to particle)