in reply to Invoke object methods with a symbolic reference

It doesn't work because the symbolic invocation format isn't fully orthogonal. You could do something like this instead:
$a->can($a->{f})($a, 'foobar');
But I don't know if that's any better than what you have. By the way, you don't need no strict subs, since this isn't considered a symbolic reference. In fact, no strict subs deals with barewords: not even related here!

-- Randal L. Schwartz, Perl hacker