use strict; use warnings; use 5.010; my %ua = ( Opera_1216 => 'Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.16', Firefox_24 => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0', IE_10 => 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Win64; x64; Trident/6.0)', Opera_18 => 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.8 Safari/537.36 OPR/18.0.1284.5 (Edition Developer)' ); require HTTP::DetectUserAgent; for my $k (keys %ua) { my $ua = HTTP::DetectUserAgent->new($ua{$k}) or die; say "$k: ",$ua->type, " ",$ua->name; }