in reply to Can I catch a die from someone else's module?

The answer yes; unless they're catching the exception first then neutralizing it (which would be dumb, but it happens). I think the key is, the ref is false. Maybe try it with eval to double check, I do see croak all over his module,
local $@; my $book = eval { ReadData("$upload_dir/yello$filename") }; if ($@ or not $book) { # ... handle error }
You should also head off some issues by checking to see if "$upload_dir/yello$filename" even exists and is readable.