# original 96-stroke solution
$c[$_*=.52,5.5-4.7*cos][8+7.4*sin]=($_^$`%12?o:x)&($_^$'/5?o:'}')for<>!~/:/..11;print"@$_
"for@c
# 102-stroke pack-friendly makeover
map$c[$_*=.52,5.5-4.7*cos][8+7.4*sin]=($`%12^$_?o:x)&($'/5^$_
?o:v125),0..s//<>/e./:/;print"@$_\n"for@c#```
####
@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+/;print$'."Go to the store and buy some more$&"
##
##
@m=(@z=(++$n,bottle.$&,of,beer),on,the,wall),s/^/,$"@m.\n\n@m,$"@z.\n\u@j/until@j=/s/?(take,one,down,an.d,pass,it,around):(go,to,the,store,an.d,buy,some,more),/^99/m;print$&.$'.$`
##
##
s//\utakevonevdownvandvpassvitvaround,v@s.__/until@s=(@b=++$s.vbottle."s"x@b.vofvbeer,onvthevwall),s//@s,v@b._/,/99/;s/$/\ugovtovthevstorevandvbuyvsomevmore,v@s./;y/v_/\40\n/;print
##
##
$_=v71.ovtovthevstorevandvbuyvsomevmore;@z=($b=++$n.vbottle."s"x@+.vofvbeer,onvthevwall),s;^;\utakevonevdownvandvpassvitvaround,v@z.\n\n@z,v$b.\n;,y/v/\40/until/,.99[^9]*/;print$'.$&
##
##
# 1 2 3 4 5 6 7
#234567890123456789012345678901234567890123456789012345678901234567890123
v;$_=v71.ovtovthevstorevandvbuyvsomevmore;@z=($b=++$n.vbottle."s"x@+.vof.
vbeer,onvthevwall),s;^;\utakevonevdownvandvpassvitvaround,v@z.\n\n@z,v$b.
;,y/v/\40/until/,.99[^9]*/;print$'.$&
#234567890123456789012345678901234567
# 1 2 3
##
##
s;^;\utakevonevdownvandvpassvitvaround,v@z.\n\n@z,v$b.
;
##
##
my $source = <<'PERSEVEROUS';
v;$_=v71.ovtovthevstorevandvbuyvsomevmore;@z=($b=++$n.vbottle."s"x@+.vof.
vbeer,onvthevwall),s;^;\utakevonevdownvandvpassvitvaround,v@z.\n\n@z,v$b.
;,y/v/\40/until/,.99[^9]*/;print$'.$&
PERSEVEROUS
my $out = unpack 'u54', uc($source);
open my $fh, '>', 'b.pl' or die "error: open b.pl: $!";
binmode $fh;
print $fh "eval lc pack u54,'" . $out . "'";