]> git.vpit.fr Git - perl/modules/Variable-Magic.git/commitdiff
Revamp PERL_DESTRUCT_LEVEL handling
authorVincent Pit <vince@profvince.com>
Mon, 30 Mar 2015 17:14:20 +0000 (14:14 -0300)
committerVincent Pit <vince@profvince.com>
Mon, 30 Mar 2015 17:14:20 +0000 (14:14 -0300)
t/lib/Variable/Magic/TestGlobalDestruction.pm

index d610dc0a19fd2019157fb8dbac1c1ae33e663c66..c6639a63ba3e2d8e3e6815d0dc604be7c096af54 100644 (file)
@@ -73,16 +73,23 @@ sub import {
   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 {