sub DESTROY { my $output = `some_additional_cleanup 2>&1`; ... } #### my $obj = My::Object->new(); ... if ($!) { die "something bad happened: $!"; } #### sub DESTROY { local ($!, $?); my $output = `some_additional_cleanup 2>&1`; ... }