in reply to Re^2: Problem of scope : $SIG{__WARN__} in a module...
in thread Problem of scope : $SIG{__WARN__} in a module...

Using eval of a block is the recommendation in the DBI documentation:

The recommended way to implement robust transactions in Perl applications is to use RaiseError and eval { ... } (which is very fast, unlike eval "...").