It looks like a good place to start would be Lingua::Identify, which 'knows' 26 languages so far. I imagine that the IPTC headers should be short enough that you could check them whole, as I expect a larger sample would give more confidence, but some experimenting may be in order on that point.
And if you have any problem with it, you can always bug the author :-) Why don't you send him some examples so that he can tell you if Lingua::Identify is the right tool for that? :-) I'm pretty sure he'd like to help O:-)
It is possible that it isn't, but it doesn't hurt trying, and L::I hasn't reached a final version yet, so maybe there's place for something like that. Bug the author!! :-) Definitely :-)