मैं सिर्फ कुछ बहुत ही अजीब व्यवहार है कि मैं वास्तव में व्याख्या कर सकते हैं नहीं का सामना करना पड़ा है:पर्ल करना ... जबकि और पिछले आदेश
do {
my $qry = $self->getHTMLQuery(undef, $mech->content());
next if (!defined($qry));
push(
@prods,
map { 'http://www.XXXXYYYX.com'.$_->attr('href') }
$qry->query('div.prodInfo div.prodInfoBox a.prodLink.GridItemLink')
);
$qry->delete();
$TEST++;
last if ($TEST >= 10);
} while(eval { $mech->follow_link(class => 'jump next') });
print "WHILE ENDED\n";
कोड कभी नहीं प्रिंट के ऊपर "जबकि समाप्त" ऐसा प्रतीत होता है, भले ही जबकि लूप से बाहर जाने के लिए जब $TEST
> = 10
लेकिन निम्नलिखित कोड प्रिंट "जबकि समाप्त" करता है:
do {
my $qry = $self->getHTMLQuery(undef, $mech->content());
next if (!defined($qry));
push(
@prods,
map { 'http://www.XXXXYYYX.com'.$_->attr('href') }
$qry->query('div.prodInfo div.prodInfoBox a.prodLink.GridItemLink')
);
$qry->delete();
$TEST++;
} while(eval { $mech->follow_link(class => 'jump next') } && $TEST <= 10);
print "WHILE ENDED\n";
दोनों परीक्षणों में,का प्रारंभिक मूल्य0.
do...while
में last
के व्यवहार for
और while {...}
में व्यवस्था से अलग है है?
मैं दूसरी बार आप कहते हैं कि "उपरोक्त कोड" मान, आप वास्तव में मतलब है "कोड * नीचे * " – TLP