From: H.Merijn Brand Date: Mon, 16 Apr 2012 16:29:28 +0000 (+0200) Subject: More efficient way to cut buffer in DHexDump () X-Git-Tag: v0.37 X-Git-Url: https://repo.or.cz/w/Data-Peek.git/commitdiff_plain/20dafaa20d806f92474be444ff769bfcaa35b3b9 More efficient way to cut buffer in DHexDump () --- diff --git a/Peek.pm b/Peek.pm index b0a4543..8c884e8 100644 --- a/Peek.pm +++ b/Peek.pm @@ -203,8 +203,8 @@ sub DHexDump my @out; my $var = @_ ? $_[0] : $_; defined $var or return; - my $str = "$var"; # force stringification - @_ > 1 && $_[1] < length $str and substr ($str, $_[1]) = ""; + my $fmt = @_ > 1 && $_[1] < length ($var) ? "A$_[1]" : "A*"; + my $str = pack $fmt, $var; # force stringification for (unpack "(A32)*", unpack "H*", $str) { my @b = unpack "(A2)*", $_; my $out = sprintf "%04x ", $off;