After any eval, you should check to see whether it failed or not. Right after yours, I slipped in this line:
die $@ if $@;
It's also useful when debugging to print out the string you're trying to eval in case it has an obvious error. Here's the string you're using:
use Time::HiResqw(gettimeofday tv_interval)
...so I stuck a space in this line:
$str .= ' qw(' . $args . ')' if $args ne '1'";
The error you get about "gettimeofday" and "strict subs" is because you've told Perl that the bareword "gettimeofday" is a function call rather than just some string. If Time::HiRes doesn't load, you'll still get another error:
Undefined subroutine &main::gettimeofday called at ...
If Time::HiRes does load, "gettimeofday" without the parentheses is fine because—I'm guessing a little here—it has a prototype.
Anyway, always check your evals.
In reply to Re: Interesting behavior in eval block
by kyle
in thread Interesting behavior in eval block
by l2kashe
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |