This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Die with $@ instead of empty message
[perl5.git] / lib / dumpvar.pl
index fa5b4df..523bda8 100644 (file)
@@ -41,7 +41,12 @@ sub unctrl {
        local($v) ; 
 
        return \$_ if ref \$_ eq "GLOB";
-       s/([\001-\037\177])/'^'.pack('c',ord($1)^64)/eg;
+        if (ord('A') == 193) { # EBCDIC.
+           # EBCDIC has no concept of "\cA" or "A" being related
+           # to each other by a linear/boolean mapping.
+       } else {
+           s/([\001-\037\177])/'^'.pack('c',ord($1)^64)/eg;
+       }
        $_;
 }
 
@@ -63,11 +68,19 @@ sub stringify {
            and %overload:: and defined &{'overload::StrVal'};
        
        if ($tick eq 'auto') {
-         if (/[\000-\011\013-\037\177]/) {
-           $tick = '"';
-         }else {
-           $tick = "'";
-         }
+           if (ord('A') == 193) {
+               if (/[\000-\011]/ or /[\013-\024\31-\037\177]/) {
+                   $tick = '"';
+               } else {
+                   $tick = "'";
+               }
+            }  else {
+               if (/[\000-\011\013-\037\177]/) {
+                   $tick = '"';
+               } else {
+                   $tick = "'";
+               }
+           }
        }
        if ($tick eq "'") {
          s/([\'\\])/\\$1/g;
@@ -80,7 +93,11 @@ sub stringify {
        } elsif ($unctrl eq 'quote') {
          s/([\"\\\$\@])/\\$1/g if $tick eq '"';
          s/\033/\\e/g;
-         s/([\000-\037\177])/'\\c'._escaped_ord($1)/eg;
+         if (ord('A') == 193) { # EBCDIC.
+             s/([\000-\037\177])/'\\c'.chr(193)/eg; # Unfinished.
+         } else {
+             s/([\000-\037\177])/'\\c'._escaped_ord($1)/eg;
+         }
        }
        $_ = uniescape($_);
        s/([\200-\377])/'\\'.sprintf('%3o',ord($1))/eg if $quoteHighBit;
@@ -234,7 +251,7 @@ sub unwrap {
          if ($#$v >= 0) {
            $short = $sp . "0..$#{$v}  " . 
              join(" ", 
-                  map {exists $v->[$_] ? stringify $v->[$_] : "empty"} ($[..$tArrayDepth)
+                  map {exists $v->[$_] ? stringify $v->[$_] : "empty"} (0..$tArrayDepth)
                  ) . "$shortmore";
          } else {
            $short = $sp . "empty array";
@@ -245,7 +262,7 @@ sub unwrap {
        #  print "$short\n";
        #  return;
        #}
-       for $num ($[ .. $tArrayDepth) {
+       for $num (0 .. $tArrayDepth) {
            return if $DB::signal;
            print "$sp$num  ";
            if (exists $v->[$num]) {