http://www.perlmonks.org?node_id=759684


in reply to How to Properly Clear Variables for reuse in a loop

Your variables are declared with my within the while loop. So they are re-initialized on each run and shouldn't know of their previous value.

And you assign a value to $url on each run; so it should even work without the my inside the loop, as the content of $url is overwritten on each run of the loop.

Ergo: If you see the same output per run, the problem is in FetchURL as others already mentioned.

$ perl -wle ' > my $i = 1; > while ( $i < 5 ) { > my $j = $i++; > print $j; > }' 1 2 3 4 $
$ perl -wle ' my $i = 1; my $j; while ( $i < 5 ) { $j = $i++; print $j; }' 1 2 3 4 $

You can see, each print prints the value of $i and $j doesn't "remember" its previous content.

update: sentence rewritten