You could wrap it in an eval. See:
perldoc -f eval
For instance, you could write:
# warn if routine calls die
eval { routine_might_die }; warn $@ if $@;
This will turn the fatal error into a warning, which is more or less what you suggested. If die is called, $@ contains the string passed to it.