Speaking of perl, any specific reason why 'sub' is not defined as keyword or anything else?
I use the hack below, which I am sure is not quite appropriate.
Gerd
{ name = 'other.function'; match = '^\s*(sub)\s*([^(]*)(.*)'; captures = { 1 = { name = 'keyword.control.perl'; }; 2 = { name = 'entity.name.function'; }; 3 = { name = 'storage.type.method'; }; }; },