On 1/11/07, hOURS <[EMAIL PROTECTED]> wrote: [snip]
Some modifications I made: I changed the names of the programs being tested to fit what I had. I reduced the alarm time from one hour down to a few seconds. I included statements to print out error messages. (The original if and else blocks just had comments.) And lastly, for my test, since I'll be checking a large number of programs for infinite loops, I encased this code in a for loop. As you can see below, it executes the code 4 times, testing the programs, infinite1.pl, infinite2.pl, infinite3.pl, and infinite4.pl. Those are all very simple programs. 1, 2, and 4 are identical: $x = 3 + 4; print $x; Running them gives the expected 7 on the screen. For infinite3.pl I encased that in an endless loop: while (1) { $x = 3 + 4; print $x; } Running this gives the expected never-ending stream of 7's. Here's the finished code for error checking: for($number = 1; $number < 5; $number +=1) { $ProgramName = "infinite" . $number . ".pl"; eval { local $SIG{ALRM} = sub { die "$ProgramName timed out\n" }; alarm 9; require $ProgramName; alarm 0; }; if($@) { if($@ =~ /timed out/) { print "timeout\n"; # timeout } else {print "some other error\n"; # some other error } } }So when I run this code and check those four little programs for errors I get the following: some other error some other error some other error some other error I don't know why I get 4 errors and not one, and why they're of the wrong type. Any help would be appreciated. Thank you, Fred Kittelmann
Fred, My best guess is that require is failing. See perldoc require for all the reasons that might happen, but the two most likely culprits are that your "modules" aren't in @INC or that they don't return a true value as their final statement. Try adding 1; to each of them as the last line of the file (again, read the require perldoc). Also add some more debugging code. require $ProgramName or die "$!\n"; would be a good start. Then you can examine $@ to see why the eval failed. HTH, -- jay -------------------------------------------------- This email and attachment(s): [ ] blogable; [ x ] ask first; [ ] private and confidential daggerquill [at] gmail [dot] com http://www.tuaw.com http://www.downloadsquad.com http://www.engatiki.org values of β will give rise to dom!
