sub my_get { my ($self) = shift(@_); my $result; eval { $result = $self->get(@_); }; # ... if $@ return $result; } #### my $success; while (! $success) { eval { $mech->get(@_); }; if (! $@) { $success = 1; } else { sleep $CONFIG{DELAY}; } }