use Devel::Peek; sub dump_as_str { my $str; # redirect STDERR temporarily open(my $ORIGSTDERR, ">&", STDERR) and close(STDERR) and open(STDERR, ">", \$str) or die($!); { no warnings 'uninitialized'; Dump($_[0]); } # restore STDERR open(STDERR, ">&=" . fileno($ORIGSTDERR)) or die($!); return $str; } my @c = (11,22,33); print "dump_as_str> " . dump_as_str(\@c); print "-" x 40 . "\n"; Dump(\@c); __END__ dump_as_str> SV = RV(0x8076b48) at 0x804de48 REFCNT = 1 FLAGS = (ROK) RV = 0x81aee20 SV = PVAV(0x8163fa8) at 0x81aee20 REFCNT = 2 FLAGS = (PADBUSY,PADMY) IV = 0 NV = 0 ARRAY = 0x805ffd0 FILL = 2 MAX = 3 ARYLEN = 0x0 FLAGS = (REAL) Elt No. 0 SV = IV(0x81a7fc0) at 0x804dc20 REFCNT = 1 FLAGS = (IOK,pIOK) IV = 11 Elt No. 1 SV = IV(0x81a7fc4) at 0x804dd40 REFCNT = 1 FLAGS = (IOK,pIOK) IV = 22 Elt No. 2 SV = IV(0x81a7fc8) at 0x804dde8 REFCNT = 1 FLAGS = (IOK,pIOK) IV = 33 ---------------------------------------- SV = RV(0x8076b48) at 0x804de48 REFCNT = 1 FLAGS = (TEMP,ROK) RV = 0x81aee20 SV = PVAV(0x8163fa8) at 0x81aee20 REFCNT = 2 FLAGS = (PADBUSY,PADMY) IV = 0 NV = 0 ARRAY = 0x805ffd0 FILL = 2 MAX = 3 ARYLEN = 0x0 FLAGS = (REAL) Elt No. 0 SV = IV(0x81a7fc0) at 0x804dc20 REFCNT = 1 FLAGS = (IOK,pIOK) IV = 11 Elt No. 1 SV = IV(0x81a7fc4) at 0x804dd40 REFCNT = 1 FLAGS = (IOK,pIOK) IV = 22 Elt No. 2 SV = IV(0x81a7fc8) at 0x804dde8 REFCNT = 1 FLAGS = (IOK,pIOK) IV = 33