#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my $VAR = { "diameterCreditControlRecord" => { "dAFirstValueAfter" => "+1920.57", "originHost" => "aaa://lg-2;transport=tcp", ..... snip ..... "callingPartyNumber" => "\241\b\30dB\205", "accumulatorValue4" => 0, "accumulatorDeltaValue" => 11043, "subscriberID" => "\241\b\30dB\205", ..... snip ..... } }; my $t = $$VAR{diameterCreditControlRecord}; # Now just convert each field you care about into a hex string: $$t{$_} = tohex($$t{$_}) for (qw( callingPartyNumber subscriberID )); print Dumper($VAR); sub tohex { ..... }