perl_help26 has asked for the wisdom of the Perl Monks concerning the following question:

Hello, I have a small question. When you set the timeout to be 0 in LWP::UserAgent post request, will this mean that it will not wait for the response or will it take the default timeout? How about timeout -1? Thanks

Replies are listed 'Best First'.
Re: Timeout 0 in LWP::UserAgent
by choroba (Cardinal) on Jun 23, 2016 at 10:39 UTC
    It's very easy to try, and not so hard to check the source.

    The source shows 0 won't be replaced, only undef:

    my $timeout = delete $cnf{timeout}; $timeout = 3*60 unless defined $timeout;

    To try a positive number, zero, and a negative number, I wrote the following:

    #! /usr/bin/perl use warnings; use strict; use LWP::UserAgent; for my $t (0, -1, 1) { my $ua = LWP::UserAgent->new( timeout => $t ); print "*** $t\n", $ua->get('http://www.perl.org')->{_content}, "\n +"; }

    The output varies, but it's usually something like

    *** 0 Can't connect to www.perl.org:443 Connection timed out at /usr/lib/perl5/vendor_perl/5.18.2/LWP/Protocol +/http.pm line 51. *** -1 Can't connect to www.perl.org:80 (timeout) LWP::Protocol::http::Socket: connect: timeout at /usr/lib/perl5/vendor +_perl/5.18.2/LWP/Protocol/http.pm line 51. *** 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>The Perl Programming Language - www.perl.org</title> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" +/> <!-- ... and the rest of the page ... -->

    The zero sometimes makes it for some pages, 1 sometimes times out, -1 always fails the same way.

    ($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,
Re: Timeout 0 in LWP::UserAgent
by Anonymous Monk on Jun 23, 2016 at 10:32 UTC
    What timeout, got link?