++
I actually feel pretty stupid for not seeing that.
It's quite simple, really: rather than making the
current buffer a package variable on the buffer class,
I just make it a method (that functions as an lvalue
if need be; I'm pretty sure that's possible in Perl6)
on the buffer class, and then I can do whatever symbol
table changes I need to do. It makes changing buffers
very frequently a little more inefficient, but it
won't be a big deal unless you have a lot of
buffer-local variables, and in that case it's worth
it because you're really using the feature. And
actually, it's probably not less efficient than making
every variable lookup check for buffer-localness.
I'm happy. Perl6 is going to be so cool. Here's
looking forward to the next Apocalypse :-)
for(unpack("C*",'GGGG?GGGG?O__\?WccW?{GCw?Wcc{?Wcc~?Wcc{?~cc'
.'W?')){$j=$_-63;++$a;for$p(0..7){$h[$p][$a]=$j%2;$j/=2}}for$
p(0..7){for$a(1..45){$_=($h[$p-1][$a])?'#':' ';print}print$/}