
Parse::http::useragent implements a rules-based parser and tries to identify msie, firefox, opera, safari & chrome first. it then tries to identify mozilla, netscape, robots and the rest will be tried with a generic parser. there is also a structure dumper, useful for debugging.