---
name: "HTML::HTML5::Parser::UA"
section: "3pm"
platform: "linux"
package: "libhtml-html5-parser-perl"
version: "0.992-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/HTML::HTML5::Parser::UA"
---

# HTML::HTML5::Parser::UA(3pm)

simple web user agent class

## NAME

HTML::HTML5::Parser::UA - simple web user agent class

## SYNOPSIS

```
 use aliased 'HTML::HTML5::Parser::UA';

 my $response = UA->get($url);
 die unless $response->{success};

 print $response->{decoded_content};
```

## DESCRIPTION

This is a simple wrapper around HTTP::Tiny and LWP::UserAgent to smooth out the API differences between them. It only supports bog standard `"get($url)"` requests.

If LWP::UserAgent is already in memory, this module will use that.

If LWP::UserAgent is not in memory, then this module will use HTTP::Tiny (or direct filesystem access for "file://" URLs).

If LWP::UserAgent is not in memory, and you attempt to request a URL that HTTP::Tiny cannot handle (e.g. an "ftp://" URL), then this module will load LWP::UserAgent and die if it cannot be loaded (e.g. is not installed).

HTML::HTML5::Parser::UA is used by the `"parse_file"` method of HTML::HTML5::Parser.

### Class Method

- "get($url, $ua)"

  Gets the URL and returns a hashref similar to HTTP::Tiny's hashrefs, but with an additional `"decoded_content"` key, which contains the response body, decoded into a Perl character string (not a byte string).

  If `$ua` is given (it's optional), then this user agent will be used to perform the actual request. Must be undef or an LWP::UserAgent object (or a subclass) or an HTTP::Tiny object (or a subclass).

### Package Variable

- $HTML::HTML5::Parser::NO\_LWP

  If true, avoids using LWP::UserAgent.

## MOTIVATION

LWP::UserAgent is a good piece of software but it has a dependency on HTML::Parser. HTML::Parser is only used to provide one fairly esoteric feature, which this package doesn't make use of. (It's the `"parse_head"` option.)

Because of that, I don't especially want HTML::HTML5::Parser to have a dependency on LWP::UserAgent. Hence this module.

## SEE ALSO

HTML::HTML5::Parser.

## AUTHOR

Toby Inkster, \<tobyink@cpan.org\>

## COPYRIGHT AND LICENSE

Copyright (C) 2012 by Toby Inkster

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

## DISCLAIMER OF WARRANTIES

THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
