Provided by: libparse-http-useragent-perl_0.42-2_all bug

NAME

       Parse::HTTP::UserAgent - Parser for the User Agent string

VERSION

       version 0.42

SYNOPSIS

          use Parse::HTTP::UserAgent;
          my $ua = Parse::HTTP::UserAgent->new( $str );
          die "Unable to parse!" if $ua->unknown;
          print $ua->name;
          print $ua->version;
          print $ua->os;
          # or just dump for debugging:
          print $ua->dumper;

DESCRIPTION

       Quoting <http://www.webaim.org/blog/user-agent-string-history/>:

          " ... and then Google built Chrome, and Chrome used Webkit, and it was like
          Safari, and wanted pages built for Safari, and so pretended to be Safari.
          And thus Chrome used WebKit, and pretended to be Safari, and WebKit pretended
          to be KHTML, and KHTML pretended to be Gecko, and all browsers pretended to
          be Mozilla, (...) , and the user agent string was a complete mess, and near
          useless, and everyone pretended to be everyone else, and confusion
          abounded."

       User agent strings are a complete mess since there is no standard format for them. They can be in various
       formats and can include more or less information depending on the vendor's (or the user's) choice. Also,
       it is not dependable since it is some arbitrary identification string. Any user agent can fake another.
       So, why deal with such a useless mess? You may want to see the choice of your visitors and can get some
       reliable data (even if some are fake) and generate some nice charts out of them or just want to send an
       "HttpOnly" cookie if the user agent seems to support it (and send a normal one if this is not the case).
       However, browser sniffing for client-side coding is considered a bad habit.

       This module 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.

METHODS

   new STRING [, OPTIONS ]
       Constructor. Takes the user agent string as the first parameter and returns an object based on the parsed
       structure.

       The optional "OPTIONS" parameter (must be a hashref) can be used to pass several parameters:

       •   "extended": controls if the extended probe will be used or not. Default is true. Set this to false to
           disable:

              $ua = Parse::HTTP::UserAgent->new( $str, { extended => 0 } );

           Can  be  used  to  speed  up the parser by disabling detection of non-major browsers, robots and most
           mobile agents.

   trim STRING
       Trims the string.

   as_hash
       Returns a hash representation of the parsed structure.

   dumper
       See Parse::HTTP::UserAgent::Base::Dumper.

   accessors
       See Parse::HTTP::UserAgent::Base::Accessors for the available accessors you can use on the parsed object.

OVERLOADED INTERFACE

       The object returned, overloads stringification ("name") and numification ("version") operators.  So  that
       you can write this:

           print 42 if $ua eq 'Opera' && $ua >= 9;

       instead of this

           print 42 if $ua->name eq 'Opera' && $ua->version >= 9;

ERROR HANDLING

       •   If you pass a false value to the constructor, it'll croak.

       •   If you pass a non-hashref option to the constructor, it'll croak.

       •   If you pass a wrong parameter to the dumper, it'll croak.

SEE ALSO

   Similar Functionality
       •   HTML::ParseBrowser

       •   HTTP::BrowserDetect

       •   HTTP::DetectUserAgent

       •   HTTP::MobileAgent

       •   Mobile::UserAgent

   Resources
       •   <http://en.wikipedia.org/wiki/User_agent>

       •   <http://www.zytrax.com/tech/web/browser_ids.htm>

       •   <http://www.zytrax.com/tech/web/mobile_ids.html>

       •   <http://www.webaim.org/blog/user-agent-string-history/>

       •   <https://developer.mozilla.org/en/Gecko_user_agent_string_reference>

       •   <http://www.useragentstring.com>

   Module Reviews
       •   CPAN       modules       for      parsing      User-Agent      strings      by      Neil      Bowers:
           <http://blogs.perl.org/users/neilb/2011/10/cpan-modules-for-parsing-user-agent-strings.html>      (23
           October 2011).

       •   Parse::HTTP::UserAgent:    yet    another    user    agent    string    parser   by   Burak   Gursoy:
           <http://use.perl.org/~Burak/journal/39577> (4 September 2009).

AUTHOR

       Burak Gursoy <burak@cpan.org>

COPYRIGHT AND LICENSE

       This software is copyright (c) 2009 by Burak Gursoy.

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

perl v5.34.0                                       2022-06-16                        Parse::HTTP::UserAgent(3pm)