return 0;
}
- my $env_level = int($ENV{PERL_DESTRUCT_LEVEL} || 0);
- if ($env_level >= $level) {
- my $is_debugging = is_debugging_perl();
+ my $env_level = $ENV{PERL_DESTRUCT_LEVEL};
+ if (defined $env_level) {
+ $env_level = do {
+ no warnings 'numeric';
+ int $env_level;
+ };
+ my $is_debugging = is_debugging_perl();
if ($is_debugging) {
- _diag("Global destruction level $env_level set by PERL_DESTRUCT_LEVEL (debugging perl)");
- return 1;
+ my $ignoring = $env_level < $level ? ', ignoring' : '';
+ _diag("Global destruction level $env_level set by PERL_DESTRUCT_LEVEL (debugging perl)$ignoring");
+ unless ($ignoring) {
+ return 1;
+ }
+ } else {
+ _diag("PERL_DESTRUCT_LEVEL is set to $env_level, but this perl doesn't seem to have debugging enabled, ignoring");
}
-
- _diag("PERL_DESTRUCT_LEVEL is set to $env_level, but this perl doesn't seem to have debugging enabled");
}
my $has_perl_destruct_level = do {