… | |
… | |
554 | for @$data; |
554 | for @$data; |
555 | } else { |
555 | } else { |
556 | if ($data =~ y/\x20-\x7e//c / (length $data || 1) > 0.2 or $data =~ /\x00./s) { |
556 | if ($data =~ y/\x20-\x7e//c / (length $data || 1) > 0.2 or $data =~ /\x00./s) { |
557 | # assume binary |
557 | # assume binary |
558 | $data = unpack "H*", $data; |
558 | $data = unpack "H*", $data; |
559 | substr $data, 40, 1e9, "..." if 40 < length $data; |
|
|
560 | } else { |
559 | } else { |
561 | $data =~ s/[^\x20-\x7e]/./g; |
560 | $data =~ s/[^\x20-\x7e]/./g; |
562 | $data = "\"$data\"" if $type =~ /string/i; |
561 | $data = "\"$data\"" if $type =~ /string/i || !length $data; |
563 | substr $data, 40, 1e9, "..." if 40 < length $data; |
|
|
564 | } |
562 | } |
|
|
563 | |
|
|
564 | substr $data, 40, 1e9, "..." if 40 < length $data; |
565 | |
565 | |
566 | printf "$indent%-16.16s %-6.6s %s\n", $tag, lc $type, $data; |
566 | printf "$indent%-16.16s %-6.6s %s\n", $tag, lc $type, $data; |
567 | } |
567 | } |
568 | } |
568 | } |
569 | } |
569 | } |