in reply to using unless($code == 200)....

Hmmm... well... I just tested and next if $response == 500 works as expected:
use strict; my @responses = (500, 300, 200, 400, 500, 300, 200, 500, 400, 500); while (<DATA>) { chomp; my $response = $responses[$_]; unless ($response == 200) { next if $response == 500; print "[$_] $response\n"; } } __DATA__ 0 1 2 3 4 5 6 7 8 9
outputs, as expected:
[1] 300 [3] 400 [5] 300 [8] 400
correctly skipping the responses which are either 200 or 500... so your problem might actually be another part of the code...

acid06
perl -e "print pack('h*', 16369646), scalar reverse $="