in reply to Printing accessor methods in here documents

Another alternative to the @{ ... } and ${\( ... )} syntaxes still allows the use of here-docs -- just use printf instead of print:
my $self = shift; my $blat = $self->blat; printf <<HERE, $blat, $self->blat, $self; blat is now %s, same as ->blat: %s, and not just %s->blat() HERE