in reply to warnings within eval{}

You could install a WARN handler. An example:
use Carp (); $SIG{__WARN__} = \&Carp::cluck; eval { use warnings; undef =~ m#1#; }

which gives the following output:

Use of uninitialized value in pattern match (m//) at foo line 8.
        eval {...} called at foo line 6
which gives you a little better information.

Hope this helps.

Liz

Replies are listed 'Best First'.
Re^2: warnings within eval{}
by flounder99 (Friar) on Sep 11, 2003 at 17:23 UTC
    I was testing that out and I realized something. It only gives you the exact line number of the error if you are using eval BLOCK, it gives much different (but still very useful) warnings if you are using eval EXPR
    use Carp (); $SIG{__WARN__} = \&Carp::cluck; eval { use warnings; undef =~ m#1#; }; $string = q{ use warnings; undef =~ m#1#; }; eval $string; __OUTPUT__ Use of uninitialized value in pattern match (m//) at temp.pl line 5. eval {...} called at temp.pl line 3 Use of uninitialized value in pattern match (m//) at (eval 1) line 3. eval ' use warnings; undef =~ m#1#; ;' called at temp.pl line 11
    That is a very handy thing to remember.

    --

    flounder