my $retries= 3; while ($retries--) { last if $mw->edit( { action => 'edit', title => $pagename, basetimestamp => $timestamp, # to avoid edit conflicts text => $text } ); if ( 3 != $mw->{error}->{code} ) { warn "Don't know how to handle " . $mw->{error}->{details}. ' ('. $mw->{error}->{code} . ')'; exit 1; } if (1 > $retries) { warn "No more retries. Giving up on " . $mw->{error}->{details}. ' ('. $mw->{error}->{code} . ')'; exit 2; } warn "Reconnecting...\n" if $verbose; $mw->logout(); $mw->login( { lgname => $settings->{USER}, lgpassword => $settings->{PASS} } ) || die $mw->{error}->{details}. ' ('. $mw->{error}->{code} . ')'; }