in reply to Dealing with Email::Valid timeout

I didn't see any mention of $Email::Valid::Response in Email::Valid, and the only timeout mentionned here is the tcp timeout of Net::DNS::Resolver, I suppose that's what you're talking about.

The error should be caught by the eval line 661 in i_Schedule.pm, if you want to catch it sooner, just add another eval sooner. As a matter of fact, the idiom:

eval { success() or die(); }; if ($@) { complain() and cleanUp(); }
is the core-perl equivalent to the try/catch pair that you may find in other languages.

eval { Email::Valid::address(@params) }; # i_Post_Exam.pm line 1560 if ($@) { warn "I haz got an error"; }
should do the trick

Replies are listed 'Best First'.
Re^2: Dealing with Email::Valid timeout
by McA (Priest) on Nov 26, 2014 at 15:28 UTC

    May I add the links to the lightweight Try::Tiny and it's heavyweight brother TryCatch. These two are often mentioned in combination with exception handling. But be careful: The behaviours of these two are little different.

    McA

Re^2: Dealing with Email::Valid timeout
by Steve_BZ (Chaplain) on Nov 26, 2014 at 15:38 UTC

    Eily,

    I currently have:

    for (my $i=0;$i<@loc_email_list;$i++){ # Set timeout in seconds to avoid excessive delays and + crashing. my $valid_email_address = Email::Valid->new(); $Email::Valid::Resolver->tcp_timeout(10); my $valid = Email::Valid->address(-address => $loc_ema +il_list[$i], -mxcheck => 1, -tldcheck => 1 ) ? '1' : '0'; if (length ($loc_email_list[$i]) == 0 or not $valid){ __message(__t("You must enter a valid email 'to' a +ddress."), $dialog_1); $dialog_1->{Ctl_Dialog_Email_To_Txt}->SetFocus; redo SHOW; }; }

    There is no eval there, in spite of what Carp says, but I guess you are saying there should be.

    It's what McA says too.

    Thanks and regards.

    Steve.

      Well, I suppose that's your i_Post_Exam.pm file I suppose, Carp never indicated any eval there. And indeed, I'm telling you to add one, eval being the way to turn die (or similar functions) into an error (which can be read in the special variable $@). You can also use one of the modules McA talked about, which may make the code closer to what you expect or are used to.