Woothee - multi-language user-agent strings parsers (perl implementation)

For Woothee, see


use Woothee;

Woothee->parse("Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)");
# => {'name'=>"Internet Explorer", 'category'=>"pc", 'os'=>"Windows 7", 'version'=>"8.0", 'vendor'=>"Microsoft"}

Woothee->is_crawler('Mozilla/5.0 (compatible; Googlebot/2.1; +');
# => 1


'Woothee' is user-agent string parser, returns just same result over multi-language by sharing same datasets and testsets over implementations of each languages.


'Woothee' have no instance methods.


Woothee->parse( $useragent ) :HashRef

Parse user-agent string and returns HashRef with keys 'name', 'category', 'os', 'version' and 'vendor'.

For unknown user-agent (or partially failed to parse), result hashref may have value 'UNKNOWN'.

  • 'category' is labels of user terminal type, one of 'pc', 'smartphone', 'mobilephone', 'appliance', 'crawler' or 'misc' (or 'UNKNOWN').
  • 'name' is the name of browser, like 'Internet Explorer', 'Firefox', 'GoogleBot'.
  • 'version' is version string, like '8.0' for IE, '9.0.1' for Firefix, '' for Chrome, and so on.
  • 'os' is like 'Windows 7', 'Mac OSX', 'iPhone', 'iPad', 'Android'. This field used to indicate cellar phone carrier for category 'mobilephone'.
  • 'vendor' is optional field, shows browser vendor.

Woothee->is_crawler( $useragent ) :Bool

Try to see $useragent's category is 'crawler' or not, by casual(fast) method. Minor case of crawler is not tested in this method. To check crawler strictly, use "Woothee->parse()->{category} eq 'crawler'".


TAGOMORI Satoshi <tagomoris {at}>


This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.