diff options
Diffstat (limited to 'systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Simple.pm')
-rw-r--r-- | systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Simple.pm | 267 |
1 files changed, 0 insertions, 267 deletions
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Simple.pm b/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Simple.pm deleted file mode 100644 index d76d6afdfd..0000000000 --- a/systems/texlive/tlnet/tlpkg/tlperl/site/lib/LWP/Simple.pm +++ /dev/null @@ -1,267 +0,0 @@ -package LWP::Simple; - -use strict; - -our $VERSION = '6.61'; - -require Exporter; - -our @EXPORT = qw(get head getprint getstore mirror); -our @EXPORT_OK = qw($ua); - -# I really hate this. It was a bad idea to do it in the first place. -# Wonder how to get rid of it??? (It even makes LWP::Simple 7% slower -# for trivial tests) -use HTTP::Status; -push(@EXPORT, @HTTP::Status::EXPORT); - -sub import -{ - my $pkg = shift; - my $callpkg = caller; - Exporter::export($pkg, $callpkg, @_); -} - -use LWP::UserAgent (); -use HTTP::Date (); - -our $ua = LWP::UserAgent->new; # we create a global UserAgent object -$ua->agent("LWP::Simple/$VERSION "); -$ua->env_proxy; - -sub get ($) -{ - my $response = $ua->get(shift); - return $response->decoded_content if $response->is_success; - return undef; -} - - -sub head ($) -{ - my($url) = @_; - my $request = HTTP::Request->new(HEAD => $url); - my $response = $ua->request($request); - - if ($response->is_success) { - return $response unless wantarray; - return (scalar $response->header('Content-Type'), - scalar $response->header('Content-Length'), - HTTP::Date::str2time($response->header('Last-Modified')), - HTTP::Date::str2time($response->header('Expires')), - scalar $response->header('Server'), - ); - } - return; -} - - -sub getprint ($) -{ - my($url) = @_; - my $request = HTTP::Request->new(GET => $url); - local($\) = ""; # ensure standard $OUTPUT_RECORD_SEPARATOR - my $callback = sub { print $_[0] }; - if ($^O eq "MacOS") { - $callback = sub { $_[0] =~ s/\015?\012/\n/g; print $_[0] } - } - my $response = $ua->request($request, $callback); - unless ($response->is_success) { - print STDERR $response->status_line, " <URL:$url>\n"; - } - $response->code; -} - - -sub getstore ($$) -{ - my($url, $file) = @_; - my $request = HTTP::Request->new(GET => $url); - my $response = $ua->request($request, $file); - - $response->code; -} - - -sub mirror ($$) -{ - my($url, $file) = @_; - my $response = $ua->mirror($url, $file); - $response->code; -} - - -1; - -__END__ - -=pod - -=head1 NAME - -LWP::Simple - simple procedural interface to LWP - -=head1 SYNOPSIS - - perl -MLWP::Simple -e 'getprint "http://www.sn.no"' - - use LWP::Simple; - $content = get("http://www.sn.no/"); - die "Couldn't get it!" unless defined $content; - - if (mirror("http://www.sn.no/", "foo") == RC_NOT_MODIFIED) { - ... - } - - if (is_success(getprint("http://www.sn.no/"))) { - ... - } - -=head1 DESCRIPTION - -This module is meant for people who want a simplified view of the -libwww-perl library. It should also be suitable for one-liners. If -you need more control or access to the header fields in the requests -sent and responses received, then you should use the full object-oriented -interface provided by the L<LWP::UserAgent> module. - -The module will also export the L<LWP::UserAgent> object as C<$ua> if you -ask for it explicitly. - -The user agent created by this module will identify itself as -C<LWP::Simple/#.##> -and will initialize its proxy defaults from the environment (by -calling C<< $ua->env_proxy >>). - -=head1 FUNCTIONS - -The following functions are provided (and exported) by this module: - -=head2 get - - my $res = get($url); - -The get() function will fetch the document identified by the given URL -and return it. It returns C<undef> if it fails. The C<$url> argument can -be either a string or a reference to a L<URI> object. - -You will not be able to examine the response code or response headers -(like C<Content-Type>) when you are accessing the web using this -function. If you need that information you should use the full OO -interface (see L<LWP::UserAgent>). - -=head2 head - - my $res = head($url); - -Get document headers. Returns the following 5 values if successful: -($content_type, $document_length, $modified_time, $expires, $server) - -Returns an empty list if it fails. In scalar context returns TRUE if -successful. - -=head2 getprint - - my $code = getprint($url); - -Get and print a document identified by a URL. The document is printed -to the selected default filehandle for output (normally STDOUT) as -data is received from the network. If the request fails, then the -status code and message are printed on STDERR. The return value is -the HTTP response code. - -=head2 getstore - - my $code = getstore($url, $file) - -Gets a document identified by a URL and stores it in the file. The -return value is the HTTP response code. - -=head2 mirror - - my $code = mirror($url, $file); - -Get and store a document identified by a URL, using -I<If-modified-since>, and checking the I<Content-Length>. Returns -the HTTP response code. - -=head1 STATUS CONSTANTS - -This module also exports the L<HTTP::Status> constants and procedures. -You can use them when you check the response code from L<LWP::Simple/getprint>, -L<LWP::Simple/getstore> or L<LWP::Simple/mirror>. The constants are: - - RC_CONTINUE - RC_SWITCHING_PROTOCOLS - RC_OK - RC_CREATED - RC_ACCEPTED - RC_NON_AUTHORITATIVE_INFORMATION - RC_NO_CONTENT - RC_RESET_CONTENT - RC_PARTIAL_CONTENT - RC_MULTIPLE_CHOICES - RC_MOVED_PERMANENTLY - RC_MOVED_TEMPORARILY - RC_SEE_OTHER - RC_NOT_MODIFIED - RC_USE_PROXY - RC_BAD_REQUEST - RC_UNAUTHORIZED - RC_PAYMENT_REQUIRED - RC_FORBIDDEN - RC_NOT_FOUND - RC_METHOD_NOT_ALLOWED - RC_NOT_ACCEPTABLE - RC_PROXY_AUTHENTICATION_REQUIRED - RC_REQUEST_TIMEOUT - RC_CONFLICT - RC_GONE - RC_LENGTH_REQUIRED - RC_PRECONDITION_FAILED - RC_REQUEST_ENTITY_TOO_LARGE - RC_REQUEST_URI_TOO_LARGE - RC_UNSUPPORTED_MEDIA_TYPE - RC_INTERNAL_SERVER_ERROR - RC_NOT_IMPLEMENTED - RC_BAD_GATEWAY - RC_SERVICE_UNAVAILABLE - RC_GATEWAY_TIMEOUT - RC_HTTP_VERSION_NOT_SUPPORTED - -=head1 CLASSIFICATION FUNCTIONS - -The L<HTTP::Status> classification functions are: - -=head2 is_success - - my $bool = is_success($rc); - -True if response code indicated a successful request. - -=head2 is_error - - my $bool = is_error($rc) - -True if response code indicated that an error occurred. - -=head1 CAVEAT - -Note that if you are using both LWP::Simple and the very popular L<CGI> -module, you may be importing a C<head> function from each module, -producing a warning like C<Prototype mismatch: sub main::head ($) vs none>. -Get around this problem by just not importing LWP::Simple's -C<head> function, like so: - - use LWP::Simple qw(!head); - use CGI qw(:standard); # then only CGI.pm defines a head() - -Then if you do need LWP::Simple's C<head> function, you can just call -it as C<LWP::Simple::head($url)>. - -=head1 SEE ALSO - -L<LWP>, L<lwpcook>, L<LWP::UserAgent>, L<HTTP::Status>, L<lwp-request>, -L<lwp-mirror> - -=cut |