summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/dumpvar.pl
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-04-23 21:46:20 +0000
committerKarl Berry <karl@freefriends.org>2014-04-23 21:46:20 +0000
commit300c1eb6d37d46078d448d6d58938d5a80cd68ff (patch)
tree23a0a8b9f8f5460b405119c4d3c163d2d488ca5e /Master/tlpkg/tlperl/lib/dumpvar.pl
parented55d86b7c5e18f6eccce80a1fb1423ca40a23b5 (diff)
(tl)perl 5.18.2 for windows from siep
git-svn-id: svn://tug.org/texlive/trunk@33648 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/tlperl/lib/dumpvar.pl')
-rw-r--r--Master/tlpkg/tlperl/lib/dumpvar.pl18
1 files changed, 17 insertions, 1 deletions
diff --git a/Master/tlpkg/tlperl/lib/dumpvar.pl b/Master/tlpkg/tlperl/lib/dumpvar.pl
index 7aadba1854e..91153ea5ad8 100644
--- a/Master/tlpkg/tlperl/lib/dumpvar.pl
+++ b/Master/tlpkg/tlperl/lib/dumpvar.pl
@@ -1,4 +1,4 @@
-require 5.002; # For (defined ref)
+require 5.014; # For more reliable $@ after eval
package dumpvar;
# Needed for PrettyPrinter only:
@@ -58,6 +58,15 @@ sub uniescape {
}
sub stringify {
+ my $string;
+ if (eval { $string = _stringify(@_); 1 }) {
+ return $string;
+ }
+
+ return "<< value could not be dumped: $@ >>";
+}
+
+sub _stringify {
(my $__, local $noticks) = @_;
for ($__) {
local($v) ;
@@ -160,6 +169,7 @@ sub unwrap {
$sp = " " x $s ;
$s += 3 ;
+ eval {
# Check for reused addresses
if (ref $v) {
my $val = $v;
@@ -312,6 +322,12 @@ sub unwrap {
print( (' ' x $s) . "FileHandle({$v}) => fileno($fileno)\n" );
}
}
+ };
+ if ($@) {
+ print( (' ' x $s) . "<< value could not be dumped: $@ >>\n");
+ }
+
+ return;
}
sub matchlex {