do一个文件的时候,如何捕获到错误啊?

do一个文件的时候,如何捕获到错误啊?

我有一个程序a.pl
有另外一个程序b.pl
我现在在a.pl中通过do去调用b.pl,貌似不能捕捉到返回的错误呢?
a.pl:
do "/tmp/b.pl"

比如,b.pl中如果有数据库连接错误等,均不会报出来,郁闷。。

谢谢。
eval {do "/tmp/b.pl"};
print "$@" if $@;
楼上的朋友,我试验了一下,貌似不行啊。。。。