#!/usr/bin/perl -w # (c) Saulius Petrauskas 2012 # Lentele atspausdina duomenis is eilutes. package HexPrint; use strict; BEGIN { use Exporter (); our ($VERSION, @ISA, @EXPORT); $VERSION = 0.01; @ISA = qw(Exporter); @EXPORT = qw(&HexPrint); } sub HexPrint { my $str = shift; my $i = 0; my $s = ''; print " +--------------------------------------------------+------------------+ | 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | 0123456789ABCDEF | +--------------------------------------------------+------------------+ | "; $str =~ s/(.)/printf("%02X ",ord($1));$s.=$1;if($i++>14){$s=~s|[^ -~]|.|g;print " | $s |\n| ";$s='';$i=0;}/gse; if($i > 0) { # print tail $s=~s|[^ -~]|.|g; print " "x(16-$i) . " | $s" . " "x(16-$i) . " |\n"; } print "+--------------------------------------------------+------------------+\n"; } 1;