http://www.perlmonks.org?node_id=879978


in reply to symbolic references

This is a deliberate exception, see strict:

There is one exception to this rule: $bar = \&{'foo'}; &$bar; is allowed so that "goto &$AUTOLOAD" would not break unde +r stricture.
and running your code through B::Deparse you get (leaving out all the 'feature' stuff):
sub test { goto \&{'greet';}; }
which triggers the exception.

UPDATE: checking your actual code, it is in sub AUTOLOAD, exactly the reason why the exception exists. If something about strict mode confuses, check strict first.