# [Perl 5](http://dev.perl.org/perl5/), 158

    @c=(@b=(++$n,bottle.'s'x@-,of,beer),on,the,wall),s//Take one down and pass it around, @c.
    
    @c, @b.
    /until/99\D+/;say$_."Go to the store and buy some more, $&"

Based on the solution from [eyepopslikeamosquito][1] found [here][2].  

Requires the free -M5.010 switch to use "say".*

  [1]: http://www.perlmonks.org/?node_id=176576
  [2]: http://www.perlmonks.org/?node_id=954210