in reply to How to find missing fonts in ms word
My reaction to this one is ... “why use Perl for this?”
In any case, “the answer is... OLE.” There are a few things in the world of software engineering that Microsoft did get right, and this is one of them. Through OLE, and using any one of several languages (including Perl...) you can open both a Word.Document, and even the Word.Application itself, as an “object,” and then you can iterate through its properties (many of which are collections) and call its published methods. These will tell you, and will do for you, anything that you may require.
Now, every one of us has the source-code that we need to write today, and so yours probably isn’t on this list. But there’s the road that you must travel, to get where you’re wanting to go.