Package Info

perl-Data-Hexify


Perl extension for hexdumping arbitrary data


Development/Libraries/Perl

This module exports one subroutine: 'Hexify'.

'Hexify' formats arbitrary (possible binary) data into a format suitable for hex dumps in the style of 'xd' or 'hexl'.

The first, or only, argument to 'Hexify' contains the data, or a reference to the data, to be hexified. Hexify will return a string that prints as follows:

0000: 70 61 63 6b 61 67 65 20 44 61 74 61 3a 3a 48 65 package Data::He 0010: 78 69 66 79 3b 0a 0a 75 73 65 20 35 2e 30 30 36 xify;..use 5.006

and so on. At the left is the (hexadecimal) index of the data, then a number of hex bytes, followed by the chunk of data with unprintables replaced by periods.

The optional second argument to 'Hexify' must be a hash or a hash reference, containing values for any of the following parameters:

  • first

    The first byte of the data to be processed. Default is to start from the beginning of the data.

  • length

    The number of bytes to be processed. Default is to proceed all data.

  • chunk

    The number of bytes to be processed per line of output. Default is 16.

  • group

    The number of bytes to be grouped together. Default is 1 (no grouping). If used, it must be a divisor of the chunk size.

  • duplicates

    When set, duplicate lines of output are suppressed and replaced by a single line reading 'SAME'.

    Duplicate suppression is enabled by default.

  • showdata

    A reference to a subroutine that is used to produce a printable string from a chunk of data. By default, a subroutine is used that replaces unwanted bytes by periods.

    The subroutine gets the chunk of data passed as argument, and should return a printable string of at most 'chunksize' characters.

  • align

    Align the result to 'chunksize' bytes. This is relevant only when processing data not from the beginning. For example, when 'first' is 10, the result would become:

    0000: ... 74 61 3a 3a 48 65 ta::He 0010: 78 69 66 79 3b ... 65 20 35 2e 30 30 36 xify;..use 5.006 ... and so on ...

    Alignment is on by default. Without alignment, the result would be:

    000a: 74 61 3a 3a 48 ... 79 3b 0a 0a 75 73 65 ta::Hexify;..use 001a: 20 35 2e 30 30 ... 73 65 20 73 74 72 69 5.006;.use stri ... and so on ...

  • start

    Pretend that the data started at this byte (while in reality it starts at byte 'first'). The above example, with 'start => 0', becomes:

    0000: 74 61 3a 3a 48 ... 79 3b 0a 0a 75 73 65 ta::Hexify;..use 0010: 20 35 2e 30 30 ... 73 65 20 73 74 72 69 5.006;.use stri ... and so on ...


License: GPL-1.0+ or Artistic-1.0
URL: http://search.cpan.org/dist/Data-Hexify/

Categories

Releases

Package Version Update ID Released Package Hub Version Platforms Subpackages
1.00-bp155.2.9 info GA Release 2023-05-17 15 SP5
  • AArch64
  • ppc64le
  • s390x
  • x86-64
  • perl-Data-Hexify
1.00-bp154.1.17 info GA Release 2022-05-09 15 SP4
  • AArch64
  • ppc64le
  • s390x
  • x86-64
  • perl-Data-Hexify
1.00-bp153.1.14 info GA Release 2021-03-06 15 SP3
  • AArch64
  • ppc64le
  • s390x
  • x86-64
  • perl-Data-Hexify
1.00-bp152.3.13 info GA Release 2020-04-16 15 SP2
  • AArch64
  • ppc64le
  • s390x
  • x86-64
  • perl-Data-Hexify
1.00-bp151.3.1 info GA Release 2019-07-17 15 SP1
  • AArch64
  • ppc64le
  • s390x
  • x86-64
  • perl-Data-Hexify
1.00-bp151.2.13 info GA Release 2019-05-18 15 SP1
  • AArch64
  • ppc64le
  • s390x
  • x86-64
  • perl-Data-Hexify
1.00-bp150.2.4 info GA Release 2018-07-30 15
  • AArch64
  • ppc64le
  • s390x
  • x86-64
  • perl-Data-Hexify