Your problem is nothing to do with
can.
Ack, updated: chromatic has told me correctly that
you can call code refs just like princepawn is doing. Which
invalidates my first point, leaving me only with...
Your problem is how you're setting your variables in
make_grid. You have:
my ($border,$width,$height) =
$self->{border},
$self->$w(),
$self->$b();
You need parens around the right side. So it should look like
this:
my($border,$width,$height) =
($self->{border}, $w->($self), $b->($self));
And that fixes the problem, or so it would seem, since when
running the code my terminal cursor gets repositioned (very
annoyingly, I might add :).