fix nested exception less than Perl version 5.14

In less than Perl version 5.14,  a local $@ inside an eval clobbers any exception thrown in its scope. 
I tried local $@ by Scope::Guard.

http://perldoc.perl.org/perl5140delta.html#Exception-Handling