Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Re: Always Looping

by Corion (Patriarch)
on Mar 27, 2006 at 07:12 UTC ( #539381=note: print w/replies, xml ) Need Help??

in reply to Always Looping

The problem is that you are not using strict, or rather, you are not Coping With Scoping. You actually have two variables $size - one, the global $size which you set to 0 at the top of your program, and another, $size, which you declare in the loop and set it to the length of your data. You should do away with the inner my and the script should work:

use strict; use LWP::Simple; my $size; my $data2; while (! length $data2) { $data2 = LWP::Simple::get($site); if (! length $data2) { warn "Couldn't get a response from '$site', sleeping"; sleep 5; # give the website some time }: }; ...

Replies are listed 'Best First'.
Re^2: Always Looping
by reasonablekeith (Deacon) on Mar 27, 2006 at 08:00 UTC
    I'd always try to avoid a loop which could continue to fail like this. What if the file is deleted? You'll be looping forever.
    use strict; use LWP::Simple; my $data = ""; my $try_count = 0; while ($try_count++ < 5) { $data = LWP::Simple::get('http://somedomain/'); last if defined $data; print "were is this file?\n"; sleep(5); };
    I also changed the criteria for success to check for 'definedness', because the LWP::Simple::get() function will explictly return undef if it fails.
    my name's not Keith, and I'm not reasonable.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://539381]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (2)
As of 2022-05-19 05:38 GMT
Find Nodes?
    Voting Booth?
    Do you prefer to work remotely?

    Results (71 votes). Check out past polls.