Following on from this thread: http://lists.freeradius.org/pipermail/freeradius-users/2014-March/070930.htm... I'm looking to do some further extension to some perl code I have to deal with the TiMos / SROS Alcatel / Nokia 7750 Accounting packets. I'm wondering if there is a smarter way of doing it than using perl. I have 3 different accounting payloads I need to deal with. A Alc-Acct-O-Inprof-Octets-64 = 0x0001000000000310593e Alc-Acct-O-Outprof-Octets-64 = 0x000100000000032ee6d4 Alc-Acct-O-Inprof-Pkts-64 = 0x000100000000000106c2 Alc-Acct-O-Outprof-Pkts-64 = 0x00010000000000011305 Alc-Acct-I-statmode = "0x8001 minimal" Alc-Acct-I-All-Octets_64 = 0x800100000000061eecce Alc-Acct-I-All-Packets_64 = 0x8001000000000001a632 Alc-Acct-I-statmode = "0x8002 minimal" Alc-Acct-I-All-Octets_64 = 0x80020000000000000c80 Alc-Acct-I-All-Packets_64 = 0x80020000000000000020 For this I need to add the inprof and outprof Outbound packets O-Inprof-Octets-64 = 0x0001000000000310593e = 51403070 O-Outprof-Octets-64 = 0x000100000000032ee6d4 = 53405396 51403070 + 53405396 = Outbound = 104808466 Inbound I-All-Octets_64 = 0x800100000000061eecce = 102689998 I-All-Octets_64 = 0x80020000000000000c80 = 3200 102689998 + 3200 = Inbound = 102693198 The issue with the above is the Alc-Acct-I-All-Octets_64 is in there twice so I need to create an array and loop through it to see what type it is. B Alc-Acct-I-Inprof-Octets-64 = 0x00010000000000000000 Alc-Acct-I-Outprof-Octets-64 = 0x00010000000000000000 Alc-Acct-I-Inprof-Pkts-64 = 0x00010000000000000000 Alc-Acct-I-Outprof-Pkts-64 = 0x00010000000000000000 Alc-Acct-I-Inprof-Octets-64 = 0x0002000000000000abb4 Alc-Acct-I-Outprof-Octets-64 = 0x00020000000000000000 Alc-Acct-I-Inprof-Pkts-64 = 0x000200000000000001ba Alc-Acct-I-Outprof-Pkts-64 = 0x00020000000000000000 Alc-Acct-O-Inprof-Octets-64 = 0x00010000000000000000 Alc-Acct-O-Outprof-Octets-64 = 0x0001000000000001f372 Alc-Acct-O-Inprof-Pkts-64 = 0x00010000000000000000 Alc-Acct-O-Outprof-Pkts-64 = 0x0001000000000000027f B is similar to A as the outbound logic is the same and the inbound logic I need to loop through I-Inprof-Octets-64 and I-Outprof-Octets-64 and add them all up as Inbound packets. C Alc-Acct-I-Inprof-Octets-64 = 0x500a0000000000000000 Alc-Acct-I-Inprof-Pkts-64 = 0x500a0000000000000000 Alc-Acct-O-Inprof-Octets-64 = 0x500a0000000000000000 Alc-Acct-O-Inprof-Pkts-64 = 0x500a0000000000000000 Alc-Acct-I-Inprof-Octets-64 = 0x50140000000000000000 Alc-Acct-I-Inprof-Pkts-64 = 0x50140000000000000000 Alc-Acct-O-Inprof-Octets-64 = 0x50140000000000019e94 Alc-Acct-O-Inprof-Pkts-64 = 0x5014000000000000027f Alc-Acct-I-Inprof-Octets-64 = 0x501e0000000000000000 Alc-Acct-I-Inprof-Pkts-64 = 0x501e0000000000000000 Alc-Acct-O-Inprof-Octets-64 = 0x501e0000000000000000 Alc-Acct-O-Inprof-Pkts-64 = 0x501e0000000000000000 This is using a different card so need to break it out as first byte as text, the second byte converted to dec, then the rest of the value converted into dec: Inbound Alc-Acct-I-Inprof-Octets-64 = 0x500a0000000000000000 - "50 - 10 - 0" Alc-Acct-I-Inprof-Octets-64 = 0x50140000000000000000 - "50 - 20 - 0" Alc-Acct-I-Inprof-Octets-64 = 0x501e0000000000000000 - "50 - 30 - 0" Outbound Alc-Acct-O-Inprof-Octets-64 = 0x500a0000000000000000 - "50 - 10 - 0" Alc-Acct-O-Inprof-Octets-64 = 0x50140000000000019e94 - "50 - 20 - 106132" Alc-Acct-O-Inprof-Octets-64 = 0x501e0000000000000000 - "50 - 30 - 0" Any ideas how to easily convert these, or do I just stick with Perl? Cheers Peter