#!/usr/bin/perl -- use strict; use warnings; use XML::Twig; use Digest; my $xml = q~ 100 12989898900 08876 S MARR SON ABG89097 INR 0000000000221000000.00 2008-07-10T12:04:25 2008-07-10 /CUST/ ADH7870822 /FRASER TRANSACTION 1780 1000 N 1 ~; { my $ctx = Digest->new('SHA1');# MD5 ... my $t = new XML::Twig( TwigHandlers=> { Transaction => sub { print $_->children_text,$/; $ctx->add($_->children_text); } } ); $t->parse($xml); print $/, $ctx->hexdigest,$/; undef $ctx; undef $t; } __END__ 1001298989890008876S MARR SON ABG89097INR0000000000221000000.002008-07-10T12:04:252008-07-10/CUST/ADH7870822/FRASER TRANSACTION17801000N1 e5dc8115e0a2c22ffd034e07d4db8446b9d6696e # FInal data will be as below 1001298989890008876S MARR SON ABG89097INR0000000000221000000.002008-07-10T12:04:252008-07-10/CUST/ADH7870822/FRASER TRANSACTION17801000N1